版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——汇编语言程序设计《汇编语言程序设计》试验指导书
汇编语言程序设计
试验指导书
浙江工业大学计算机学院
2023-3-1
1
《汇编语言程序设计》试验指导书
汇编语言程序设计试验指导书
《汇编语言程序设计》是一门实践性很强的课程,只有多上机操作,对汇编语言源程序进行编辑、汇编、连接、调试和运行全过程的训练,才能加深对本课程基本知识的理解,才能熟练地把握程序设计的方法与技巧,才能学好本课程。
本试验指导书是完全依照《汇编语言程序设计》教学考试大纲中课内实践教学安排的要求编写的,为便于考生较好完成上机操作和试验报告,特此作出如下说明和要求:
(1)做好上机试验的准备工作:应考者对每个试验需要进行预习,了解相关内容和具体要求,熟悉上机操作步骤,学会相关系统软件的使用,把握各种操作调试命令。
(2)编写源程序:依照试验题目的要求,应考者要事先独立完成汇编语言源程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。
(3)完成试验报告:做完上机试验,应考者要严格依照试验报告模板的格式要求写出试验报告。
2
《汇编语言程序设计》试验指导书
试验一DEBUG的使用
(一)试验目的
1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。
2、把握8086/8088的寻址方式及多字节数据的处理方法。
(二)试验设备
硬件环境:IBM-PC及其兼容机
软件环境:操作系统DOS3.0版本以上调试程序DEBUG.COM
(三)试验内容和要求
试验内容:
1、利用DEBUG程序中的“E〞命令,将两个多字节数“12345678H〞和“FEDCBA98H〞分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2、分别用直接寻址方式和寄放器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。
试验要求:
本次试验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
(四)预习要求
1、复习DOS启动方式和DOS有关命令的使用;
2、阅读本书后的附录,熟悉把握DEBUG调试程序中的A、D、E、G、Q、R、T、U命令的书写格式及功能;
3、复习寻址方式和相关的数据传送指令及算术运算指令。
(五)试验步骤
1、启动DOS操作系统
2、运行DEBUG.COM程序(若当前盘为C)C:>DEBUG↙–;(“–〞为DEBUG提醒符,仅当屏幕出现该提醒符后,才可输入DEBUG命令)
3、用“A〞命令编辑和汇编源程序–A↙
186E:0100MOVAX,[0200]↙186E:0103MOVBX,[0202]↙186E:0107ADDAX,[0204]↙186E:010BADCBX,[0206]↙186E:010FMOV[0208],AX↙186E:0112MOV[020A],BX↙
3
《汇编语言程序设计》试验指导书
186E:0116↙
4、用“U〞命令反汇编验证源程序–UCS:0100↙
186E:0100A10002MOVAX,[0200]186E:01038B1E0202MOVBX,[0202]186E:010703060402ADDAX,[0204]186E:010B131E0602ADCBX,[0206]186E:010FA30802MOV[0208],AX186E:0112891E0A02MOV[020A],BX186E:0116–
注意:
?检查源程序是否有错误,若有则返回到第3步用“A地址〞命令进
行修改,直到程序无错误。
?DEBUG约定在其命令或源程序中所涉及到的数据均被看作十六进
制数,其后不用“H〞说明。
?在DEBUG下,源程序中不能使用“标号〞、“变量〞和一些伪指令。?在DEBUG下,大小写不敏感。
5、程序未执行前,用“R〞命令观测,相关寄放器的内容。
–R↙如:(AX)=,(BX)=,(SI)=,(DI)=,(CS)=,(IP)=。
6、在程序未执行前,用“D〞命令观测DS:0200H,DS:0204H、DS:0208H单元的内容
–D20020B↙
7、用“G〞命令运行源程序–G=1100116↙
8、再用“D〞命令观测DS:0200H~DS:020BH字节单元中的内容–D20020B↙
9、用“T〞单步操作命令对源程序单步执行,观测AX、BX、CS、IP寄放
器内容的变化,并与预计的结果相比较。注意:
?D命令显示内存数据,注意观测多字节数据在内存中的存放方式。?指令执行的时候,IP寄放器随着变化,注意观测。
(六)试验结果分析
1、程序运行结果:(AX)=,(BX)=DS:0208H四字节单元的内容:2、试用寄放器间接寻址方式编写程序段,完成上述程序段的功能。(参考
4
《汇编语言程序设计》试验指导书
以下程序流程图)
开始
SI←200HDI←204HBX←208HAX←[SI]DX←[SI+2]AX←AX+[DI]DX←DX+[DI+2][BX]←(AX)[BX+2]←(DX)终止3、附加题目:
1.从DS:0000H开始的5个16位带符号数分别记为x,y,z,v,w,用E命令初
始化为:540,1,-1,1080,0,试求w=(v-(x*y+z-540))/x2.完成BX中1的个数的统计。
3.用串操作指令将DS:0000开始20个字节初始化为:0CCH。并将这20
个字节的内容复制到其后的20个字节里。
5
《汇编语言程序设计》试验指导书
试验二顺序程序设计
(一)试验目的
1、学习算术运算(加、减、乘、除)和扩展指令的用法;
2、把握顺序程序结构和设计方法;
3、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。
(二)试验设备
硬件环境:IBM-PC及其兼容机软件环境:操作系统DOS3.0以上
编辑程序EDIT或其它编辑程序汇编程序MASM.EXE6.1X连接程序LINK.EXE调试程序DEBUG.COM
(三)试验内容和要求
试验内容:
X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完成以下功能:
①计算表达式值(V–(X*Y+Z-720))/X;
②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。要求:
①编写出完整的汇编语言源程序,根据题目的需要建立相应的规律段(如程序段、数据段)。
②可选用任何一种编辑程序在磁盘上建立一个源文件(扩展名为.ASM)。③用宏汇编程序MASM对源文件进行汇编,生成目标文件(扩展名为.OBJ)。
④用连接程序LINK对目标文件进行连接,生成可执行程序.EXE文件。⑤用DEBUG调试程序对源程序进行动态调试。
(四)预习要求
1、复习把握8086指令系统相关指令,按试验内容和要求预先编写好源程序;2、熟悉在宏汇编程序MASM环境下,对源程序进行编辑、汇编、连接、运行。
3、进一步熟练用DEBUG对源程序进行动态调试,把握一些常用的调试命令和方法。
(五)试验步骤
1、启动DOS操作系统;
2、调用某种编辑程序,在磁盘上建立扩展名为ASM的源程序;3、在DOS提醒下,打入MASM调入宏汇编程序,用以对源程序进行汇编。
6
《汇编语言程序设计》试验指导书
设在磁盘上已建立了一个EXAMPLE.ASM源程序,操作如下所示:
C:>MASM↙
Microsoft(R)MacroAssemblerVersion5.00
Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved.Sourcefilename[.ASM]:EXAMPLE↙Objectfilename[EXAMPLE.OBJ]:↙Sourcelisting[NUL.LST]:EXAMPLE↙Crossreference[NUL.CRF]:EXAMPLE↙WarningSevereErrorsErrors00C:>
汇编程序MASM需要和用户进行上述相关信息交互,以便进行汇编、生成相应的文件。
(a)提醒用户输入需要汇编的源程序名;
(b)提醒用户输入要建立的目标文件名,若默认括弧内的目标文件名,则可直接按回车;
(c)询问用户是否要建立汇编列表文件,若要,则打入文件名,否则按回车;(d)询问用户是否要建立交织索引文件,若要,则打入文件名,否则按回车。注意:
仅当屏幕上显示无错误时(警告错误为“0〞,严重错误为“0〞),才可进行下一步骤连接,否则要根据提供源程序的错误行号和错误性质,重新对源程序进行修改、编辑和汇编。
4、在DOS提醒符下,打入LINK调用连接程序,以便对目标文件进行连接。产生可执行EXE文件。操作如下所示:
C:>LINK
Microsoft(R)OverlayLinkerVersion3.60
Copyright(C)MicrosoftCorp1983-1987.Allrightsreserved.ObjectModules[.OBJ]:EXAMPLE↙RunFile[EXAMPLE.EXE]:↙ListFile[NUL.MAP]:↙Libraries[.LIB]:↙
Warning:NoSTACKsegmentTherewas1errordetected.C:>
连接程序Link需要和用户进行上述相关信息交互,以便连接和生成相应的文件。
(a)提醒用户输入需要连接的目标模块名;
(b)提醒用户输入要建立的可执行文件名,若默认括弧内的可执行文件名,
7
《汇编语言程序设计》试验指导书
则直接按回车;
(c)询问用户是否要建立地址分派文件,若要,则打入文件名,否则按回车;(d)询问用户是否用到库文件,假使用户自己建立了库文件,则键入库文件名,否则按回车。
连接程序在连接过程发现有错,则会显示出错信息,用户应重新调用编辑程序对源程序进行修改,然后重新汇编、连接、直至无错。但连接程序给出的无堆栈段的警告性错误并不影响程序的执行,所以,到此为止,连接过程已经终止,生成了有效的可执行程序。
5、在DOS提醒符下,直接输入EXE文件名,运行程序。C:>EXAMPLE↙注意:
此时可能屏幕上没有任何显示,由于你没有让结果显示在屏幕上,但是你的计算结果必然在内存中。所以应当采用DEBUG进行动态调试。
6、调用DEBUG程序对EXE文件进行动态调整,其方法和步骤与试验一一致。
C:>DEBUGEXAMPLE.EXE–
再可以用U,D,T,G等命令进行调试,其方法和步骤与试验一一致。
(六)试验结果分析
1、程序运行结果:SUM1单元:;SUM2单元:。
2、若在X、Y、Z、V字单元中存放的均为无符号数,对相关十六位二进制数进行扩展,采用什么方法可以实现?
(七)编程提醒
(a)执行16位IMUL指令运算结果乘积在DX、AX中。(b)相加或相减的二个数长度一定要一致,注意使用CWD扩展指令将(AX)→DX、AX。
(c)使用16位IDIV指令一定要将被除数放在DX、AX中。
8
《汇编语言程序设计》试验指导书
(一)试验目的
试验三分支程序设计(1)
1、把握多路分支IF…ElseIF…Else程序结构和设计方法。
2、学会使用地址表和转移表法写多路分支程序。
(二)试验设备
同试验二
(三)试验内容和要求
试验内容:
在内存Score缓冲区中存放有100个学生的成绩数据,为无符号字节数。假设学生成绩在[90,100]区间为优秀,在[80,90)区间为良好,在[70,80)区间为一般,在[60,70)区间为及格,在[0,60)区间为不及格,要求统计出不及格,及格,一般,良好和优秀的人数,分别送入Notpassed,Passed,Good,Better和Best字节单元。
1.用普通的跳转语句实现上述功能。2.用地址表法和转移表实现。
(四)预习要求
同试验二
(五)试验步骤
同试验二
(六)试验结果分析
1、确认不及格,及格,一般,良好和优秀的人数总和是否为100。
(七)编程提醒
a)用普通的跳转语句实现上述功能时,区分不及格,及格,一般,良好和
优秀5个区间,是一个5分支的结构,至少需要4条跳转指令。b)注意无符号数和有符号数使用跳转指令的区别。
c)用地址表和转移表法实现时,必需找出分数与地址表和转移表的偏移的
对应关系。
9
《汇编语言程序设计》试验指导书
试验四分支程序设计(2)
(一)试验目的
1、熟悉与转移地址有关寻址方式的使用。
2、把握多路分支程序的结构和设计方法。
(二)试验设备
同试验二
(三)试验内容和要求
试验内容
有一个管理软件可接受7个键盘命(分别为1、2、3、??、7),根据键入的命令分别转向PROCA、PROCB、??、PROCG标号处执行,分别显示星期一——星期天的英文字符串。(要求用地址表法完成具有上述功能的多路分支程序的设计。)
其它要求同试验二
(四)预习要求
同试验二
(五)试验步骤
同试验二
(六)试验结果分析
1、若改用转移表法来实现多路分支,程序如何修改?
2、若采用二路分支判别条件的方法来实现多路分支,程序的缺点是什么?
(七)编程提醒
(a)在数据段建立地址表Datasegment
TABDWPROCADWPROCBDWPROCC?
DWPROCGDataEnd(b)程序流程图
10
《汇编语言程序设计》试验指导书
N
开始输入键盘符→AL‘1’≤(AL)≤‘7’Y(AL)-30H?AL(AL)*2→AX地址表的首地址→BX(BX)+(AX)→BX转入对应程序段显示星期英文名终止11
《汇编语言程序设计》试验指导书
试验五循环程序设计(1)
(一)试验目的
1、把握多重循环程序的结构和设计方法。
2、弄清直接排序的算法。3、弄清冒泡排序方法。
(二)试验设备
同试验二
(三)试验内容和要求
试验内容:
在内存Score缓冲区中存放有100个学生的成绩数据,为无符号字节数。设计程序完成如下功能:
①采用直接排序法对数组进行由小到大排序;②采用冒泡排序方式对数组进行由大到小排序;
③将最高和最低的分数分别存放在MIN和MAX单元中。
(四)预习要求
同试验二
(五)试验步骤
同试验二
(六)试验结果分析
1、对数据进行排序对查找有什么意义?
(七)编程提醒
(a)采用冒泡排序算法进行排序程序流程图
12
《汇编语言程序设计》试验指导书
开始(BX)→SI,(CH)→CL,((SI))→ALY(AL)≤((SI)+1)N(AL)?((SI)+1)CL)-1→CL(SI)+1→SI,(N(CL)=0YBX)(AL)→((BX)+1→BX,(CH)-1→CHN(CH)=0Y终止数组首地址→BX数组长度100-1→CH13
《汇编语言程序设计》试验指导书
试验六循环程序设计(2)
(一)试验目的
1、学习循环控制指令的用法。
2、弄清简单查找和繁杂查找如折半查找等的编程方法。3、把握循环程序的结构和设计方法。
(二)试验设备
同试验二
(三)试验内容和要求
试验内容:
在内存Score缓冲区中存放有100个学生的成绩数据,为无符号字节数。设计程序完成如下功能:
①根据用户输入的一个2位十进制数,作为查找对象,在该数组中查找,若找到则显示“Y〞,若没找到则显示“N〞。
②根据用户输入的一个2位十六进制数,作为查找对象,在该数组中查找,若找到则显示“Y〞,若没找到则显示“N〞。
(四)预习要求
同试验二
(五)试验步骤
同试验二
(六)试验结果分析
1、若在数据区Score内能够找到输入的数据,则在屏幕上显示“Found〞,否则显示“Notfound〞,程序如何修改?
2、假使分数已经从小到大进行了排序,采用折半查找应如何进行?
(七)编程提醒
(a)在数据段定义100个无符号字节数。(b)程序流程图
14
《汇编语言程序设计》试验指导书
N开始调用DOS1号功能将数的十位字符→AL‘0’≤(AL)≤‘9’N(AL)→AH调用DOS21号功能将数的个位字符→AL
‘0’≤(AL)≤‘9’Y(AH)∧0FH→AH
(AL)∧0FH→AL(AH)*10+(AL)→AL数组的首地址→BX
数组的长度100→CX
(Y(AL)=?(BX))N(BX)+1→BX
(CX)-1→CX
N?(CX)=0Y‘N’→DL
调用DOS2号功能输出显示字符
‘Y’→DL终止15
《汇编语言程序设计》试验指导书
试验七子程序设计(1)
(一)试验目的
1、把握子程序的设计方法和调用方式
2、深刻认识堆栈在子程序设计中所起的作用3、把握子程序调试的技巧。
(二)试验设备
同试验二
(三)试验内容和要求
试验内容:
内存中有一字节型无符号数缓冲区Data,长度为100。将Data缓冲区显示到屏幕上,分别用二进制,十进制和十六进制。要求:
1.编写子程序将一个字节数用二进制进行显示,参数用内存数传递;2.编写子程序将一个字节数用十进制进行显示,参数用寄放器数传递;3.编写子程序将一个字节数用十六进制进行显示,参数用堆栈传递;
(四)预习要求
同试验二
(五)试验步骤
同试验二
(六)试验结果分析
1、理解3种参数传递方式各有什么特点2、绘制一般子程序的结构。
(七)编程提醒
(a)二进制显示可采用移位并判断该位的方式进行。(b)十进制数采用除以10取商的方式。
(c)十六进制数可利用二进制转换位十六进制的方法进行。(d)注意去掉最高位的“0〞。
16
《汇编语言程序设计》试验指导书
试验八子程序设计(2)
(一)试验目的
1、把握子程序的设计方法和调用方式
2、深刻认识堆栈在子程序设计中所起的作用3、把握子程序调试的技巧。
(二)试验设备
同试验二
(三)试验内容和要求
试验内容:
已知某密码由英文字母A、B、C??Z组成且以ASCII码形式存放在以CIPHER为首地址的存储区中,试统计各字母在此密码中出现的次数并依次存入以CHAR为首地址的26个字节中,最终将字母出现的次数以十六进制形式显示出来(设出现的次数≤255),显示格式为:
AXXHBXXHZXXH要求:
将“8位二进制数转换成十六进制数并显示出来〞的功能用子程序完成。
(四)预习要求
同试验二
(五)试验步骤
同试验二
(六)试验结果分析
1、表达调用子程序和子程序返回对堆栈的操作过程。2、绘制一般子程序的结构。
(七)编程提醒
(e)主程序流程图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版围栏生产废水处理与排放标准合同3篇
- 二零二五版个人专利权抵押融资合同模板2篇
- 二零二五版股权质押投资顾问服务合同样本3篇
- 二零二五年艺术展厅租赁及艺术品交易服务合同3篇
- 二零二五版国际贸易实务实验报告与国际贸易实务指导合同3篇
- 二零二五版电商企业内部保密协议及商业秘密保密制度合同2篇
- 二零二五年度高校教师解聘合同3篇
- 二零二五版屋顶光伏发电与防水一体化系统合同3篇
- 二零二五版上市公司短期融资券发行合同3篇
- 二零二五版企业财务风险管理体系构建服务合同2篇
- DB-T29-74-2018天津市城市道路工程施工及验收标准
- 小学一年级20以内加减法混合运算3000题(已排版)
- 智慧工厂数字孪生解决方案
- 病机-基本病机 邪正盛衰讲解
- 品管圈知识 课件
- 非诚不找小品台词
- 2024年3月江苏省考公务员面试题(B类)及参考答案
- 患者信息保密法律法规解读
- 老年人护理风险防控PPT
- 充电桩采购安装投标方案(技术方案)
- 医院科室考勤表
评论
0/150
提交评论