资源描述:
《汇编语言实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、合肥工业大学计算机与信息学院实验报告课程:汇编语言程序设计专业班级:学号:姓名:实验一Debug程序的使用一.实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。2、掌握8086/8088的寻址方式及多字节数据的处理方法。二.实验内容实验内容:
1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并
2、将运算结果存放在DS:0208H单元中。
实验要求:
本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
三.实验过程和程序1、启动DOS操作系统
2、运行DEBUG.COM程序(若当前盘为C)
C:>DEBUG↙
–;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令)
3、用“A”命令编辑和汇编源程序
–A↙
186E:0100MOVAX,[0200]↙
186E:0103MOVBX,[0202]↙
186E:0107ADDAX,[0204]↙
186E
3、:010BADCBX,[0206]↙
186E:010FMOV[0208],AX↙
186E:0112MOV[020A],BX↙
186E:0116↙4、用“U”命令反汇编验证源程序
–UCS:0100↙
186E:0100A10002MOVAX,[0200]186E:01038B1E0202MOVBX,[0202]
186E:010703060402ADDAX,[0204]
186E:010B131E0602ADCBX,[0206]
186E:010FA30802MOV[0208],AX
186E:0112891E0A02MOV[020A],BX
1
4、86E:0116
–注意:
检查源程序是否有错误,若有则返回到第3步用“A地址”命令进
行修改,直到程序无错误。
DEBUG约定在其令或源程序中所涉及到的数据均被看作十六进
制数,其后不用“H”说明。
在DEBUG下,源程序中不能使用“标号”、“变量”和一些伪指令。
在DEBUG下,大小写不敏感。
5、程序未执行前,用“R”命令观察,相关寄存器的内容。
–R↙
如:(AX)=0000,(BX)=0000,(SI)=0000,(DI)=0000,(CS)=0b58,(IP)=01006、在程序未执行前,用“D”命令观察DS:0200H,DS:0204H、
5、DS:0208H单元的内容–D20020B↙7、用“G”命令运行源程序
–G=1100116↙8、再用“D”命令观察DS:0200H~DS:020BH字节单元中的内容–D20020B↙9、用“T”单步操作命令对源程序单步执行,观察AX、BX、CS、IP寄存
器内容的变化,并与预计的结果相比较。注意:D命令显示内存数据,注意观察多字节数据在内存中的存放方式。指令执行的时候,IP寄存器随着变化,注意观察。一.实验结果(包括必要的截图)1、程序运行结果:(AX)=1110,(BX)=1111DS:0208H四字节单元的内容:101111112、试用寄存器间接
6、寻址方式编写程序段,完成上述程序段的功能。程序流程图)
开始SI←200HDI←204HBX←208HAX←[SI]DX←[SI+2]AX←AX+[DI]
DX←DX+[DI+2][BX]←(AX)[BX+2]←(DX)结束实验二汇编语言程序设计(顺序、循环)一.实验目的1、掌握顺序和循环程序结构和设计方法;2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。二.实验内容BL中只有一位为1.编写程序测试,,并输出提示信息“thexbitis1”,要求:地址表和转移表。地址表CR=0dhLF=0ahdsegsegmentM
7、sg1dbCR,LF,'The1bitis1','$'Msg2dbCR,LF,'The2bitis1','$'Msg3dbCR,LF,'The3bitis1','$'Msg4dbCR,LF,'The4bitis1','$'AddrdwFunc0,Func1,Func2,Func3countdw0dsegendscsegsegmentassumecs:cseg,ds:dsegStart:movax,dsegmovds,axmovbl,1movbh,0movcx,4Next:shrbl,1cmpbl,0jeHandleinccountloopNextHan
8、dle:movax,countshlax,1movbx,axjmpAddr[bx]Func0: