《(完整)汇编语言程序设计实验指导大作业推荐文档.pdf》由会员分享,可在线阅读,更多相关《(完整)汇编语言程序设计实验指导大作业推荐文档.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一、调试工具 DEBUG 的应用一、DEBUG 命令使用1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DEBUG,进入调试环境,显示提示符-。2、用命令 F 200 220 AB 将AB的两个ASCII码循环填入内存。注:第一个参数200是当前段的起始偏移地址,第二个参数220是终了偏移地址,第三个参数AB是被填入的数值,若不给出第二个参数则填入128(8行)个字节。3、用命令 D200 观察内存中的十六进制码及屏幕右边的ASCII字符。4、用命令 F230 23F 12 重复上二项实验,观察结果并比较。5、用命令 E200 41 42 43 44 45 将A-E的ASCII码写
2、入地址为200开始的内存单元中,再用D命令观察结果,看键入的十六进制数和ASCII码的对应关系。6、用H命令检查下列各组十六进制数的和与差(补码表示):(1)56H,34H (2)23H,45H (3)AB,3045H注:输入 H 12 34 则在下一行显示0046 FFDE,即二者的补码和与差。在DEBUG环境下所有数据和地址都是按16进制处理,所以不要加后面的H标志。7、用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。8、用R命令将AX,BX内容改写为1050H及23A8H。二、8086 常用指令练习1、传送指令1)用A命令在内存400H处键
3、入下列内容:-A 0400*:0400 MOV AX,1234*:0403 MOV BX,5678*:0406 XCHG AX,BX*:0408 MOV AH,10*:040A MOV AL,20*:040C MOV CX,89AB*:040F XCHG AX,CX*:0411注:*为段寄存器CS的当前值,内容是不一定的,每行命令以回车键结束。2)用U命令检查键入的程序并记录,特别注意左边的机器码与指令的对应关系。-U 04003)用T命令逐条运行这些指令,每运行一行指令观察各寄存器及IP的变化情况,并注意标志位的变化情况。-T=0400(注:=400是表示从偏移地址400处开始单步执行)-T
4、(不给出地址,则表示接续上一条指令执行)-T2、加减法指令:1)用A命令在内存100H处键入下列内容:MOVMOVADDSUBMOVMOVADDSUBSUBAH,11AL,22AL,AHAL,33CX,1234DX,5678CX,DXCX,AXCX,CX2)用U命令检查键入的程序及对应的机器码。3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。当进行 mov 运算时,ZF 标志位不会改变,因为 mov 指令的执行并不会改变标志位。ZR 表示 ZF=1,NZ 表示 ZF=0。3、带进位加减法:1)用A命令在内存200H处键入下列内容,并用U命令检查:MOVMOVMOVMOVADDAD
5、CMOVMOVSUBSBBAH,12AL,84CH,56CL,78AL,CLAH,CHDH,A7DL,58DL,7FDH,342)用T命令逐条运行这些指令,检查并记录有寄存器及CF内容。3)上面这段程序若改用 16 位操作指令达到同样结果,怎么改?试修改并运行之。修改后:4、BCD码加减法(选作)1)内容:MOVADDDAA2)要求:用A 命令键入,U命令检查,T命令逐条运行并记录有关寄存器及AF内容。注:相加后AL值本来是7B,经DAA指令调整后变为81,即65和16两个BCD码的和。AL,65AL,16实验二 内存操作数及寻址方法一、内存操作数及各种寻址方式使用MOVMOVMOVMOVMO
6、VINCMOVAX,2000200,AXBX,210BYTE PTRBX,50CL,40BXBX,CLDECMOVMOVMOVCLSI,5BX+SI,CLBX+SI+1,CLMOVWORD PTRBX+SI+2,12341)用A命令键入上述程序,并用T命令逐条运行。2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注意是什么寻址方式。注:D命令显示结果时,双字节数在内存的存放是高地址对应高数据位;指令中出现的BYTE PTR及WORD PTR是因为操作数的宽度必须一致。二、求累加和程序MOVMOVXOR ADDADCINCLOOPINT31)进入DEBUG环境。2)用命令F 200 L10 40 在内存200H-20FH地址处填入一系列值40H。3)用命令A 100 将上述程序键入到100H开始的内存中。注:LOOP指令用到108H号地址,即为ADD指令的当前地址,构成一个循环。4)用命令G=100 执行该程序段,程序运行后停在INT 3 指令上,此时观察AX寄存器的值为240H,即为9个40H的和。注:INT 3指令是一条断点中断指令,程序遇到该指令则停止。5)用T=100命令单步执行,观察IP、CX及AX寄存器的值,分析程序执行过程。BX,200CX,9AX,AXAL,BX;按字节相加AH,0;若有进位则到AH中BX108单步执行结果显示: