资源描述:
《汇编语言程序设计实验指导.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言程序设计实验指导【实验提要】以下列举的10个实验,都是以Intel的8086及后续系列微处理器的指令系统为核心,采用宏汇编工具MASM6.X以及调试工具DEBUG或DEBUG32,针对本教材所述内容进行相关的上机实践。旨在帮助学生加深认识和理解理论教学知识,通过大量的上机实验熟悉8086CPU的指令功能、用途和使用技巧,进而提高汇编语言程序设计的能力。(带号的为选作内容)实验一调试工具DEBUG的应用实验目的通过实验掌握下列知识:1、8086指令:MOV,ADD,ADC,SUB,SBB,DAA,X
2、CHG的功能;2、DEBUG命令:A,D,E,F,H,R,T,U的使用;3、BCD码、ASCII码及用十六进制数表示二进制码的方法;4、寄存器:AX,BX,CX,DX,FLAGS,IP。内容及步骤注:本次实验可以参照教材上关于DEBUG的叙述内容进行。一、DEBUG命令使用1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DEBUG,进入调试环境,显示提示符'-'。2、用命令F200220'AB'将'AB'的两个ASCII码循环填入内存。注:第一个参数200是当前段的起始偏移地址,第二个参数220是
3、终了偏移地址,第三个参数‘AB’是被填入的数值,若不给出第二个参数则填入128(8行)个字节。3、用命令D200观察内存中的十六进制码及屏幕右边的ASCII字符。4、用命令F23023F12重复上二项实验,观察结果并比较。5、用命令E2004142434445将A-E的ASCII码写入地址为200开始的内存单元中,再用D命令观察结果,看键入的十六进制数和ASCII码的对应关系。6、用H命令检查下列各组十六进制数的和与差(补码表示):(1)56H,34H(2)23H,45H(3)AB,3045H注:输入H1
4、234则在下一行显示0046FFDE,即二者的补码和与差。在DEBUG环境下所有数据和地址都是按16进制处理,所以不要加后面的H标志。7、用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。注:若在DEBUG32环境下用R16和R32命令分别显示16位和32位寄存器内容。8、用R命令将AX,BX内容改写为1050H及23A8H。二、8086常用指令练习1、传送指令1)用A命令在内存400H处键入下列内容:-A0400:0400MOVAX,1234:0403MOV
5、BX,5678:0406XCHGAX,BX:0408MOVAH,10:040AMOVAL,20:040CMOVCX,89AB:040FXCHGAX,CX:0411-注:为段寄存器CS的当前值,内容是不一定的,每行命令以回车键结束。2)用U命令检查键入的程序并记录,特别注意左边的机器码与指令的对应关系。-U04003)用T命令逐条运行这些指令,每运行一行指令观察各寄存器及IP的变化情况,并注意标志位的变化情况。-T=0400(注:=400是表示从偏移地址400处开始单步执行)-T(不给出地址,则表示接续上一
6、条指令执行)-T┇2、加减法指令:1)用A命令在内存100H处键入下列内容:MOVAH,11MOVAL,22ADDAL,AHSUBAL,33MOVCX,1234MOVDX,5678ADDCX,DXSUBCX,AXSUBCX,CX2)用U命令检查键入的程序及对应的机器码。3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。3、带进位加减法:1)用A命令在内存200H处键入下列内容,并用U命令检查:MOVAH,12MOVAL,84MOVCH,56MOVCL,78ADDAL,CLADCAH,CHMOV
7、DH,A7MOVDL,58SUBDL,7FSBBDH,342)用T命令逐条运行这些指令,检查并记录有寄存器及CF内容。3)上面这段程序若改用16位操作指令达到同样结果,怎么改?试修改并运行之。4、BCD码加减法(选作)1)内容:MOVAL,65ADDAL,16DAA2)要求:用A命令键入,U命令检查,T命令逐条运行并记录有关寄存器及AF内容。注:相加后AL值本来是7B,经DAA指令调整后变为81,即65和16两个BCD码的和。实验二内存操作数及寻址方法实验目的通过实验掌握下列知识:1、DEBUG命令:A,
8、T,D,F,G;2、数据在内存中的存放方式和内存操作数的几种寻址方式;3、汇编指令:INC,DEC,LOOP,INT3的应用;4、汇编语言伪指令:BYTEPTR和WORDPTR的应用。实验内容和步骤一、内存操作数及各种寻址方式使用程序内容:MOVAX,2000MOV[200],AXMOVBX,210MOVBYTEPTR[BX],50MOVCL,40INCBXMOV[BX],CLDECCLMOVSI,5MOV[BX+SI],CL