汇编语言程序设计实验指导
【实验提要】以下列举的10个实验,都是以Intel的8086及后续系列微处理器的指令系统为核心,采用宏汇编工具MASM6.X以及调试工具DEBUG或DEBUG32,针对本教材所述内容进行相关的上机实践。旨在帮助学生加深认识和理解理论教学知识,通过大量的上机实验熟悉8086CPU的指令功能、用途和使用技巧,进而提高汇编语言程序设计的能力。(带*号的为选作内容)
实验一调试工具DEBUG的应用
实验目的
通过实验掌握下列知识:
1、8086指令:MOV,ADD,ADC,SUB,SBB,DAA,XCHG的功能;
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是终了偏移地址,第三个参数‘AB’是被填入的数值,若不给出第二个参数则填入128(8行)个字节。汇编语言结束指令
3、用命令D200观察内存中的十六进制码及屏幕右边的ASCII字符。
4、用命令F23023F12重复上二项实验,观察结果并比较。
5、用命令E2004142434445将A-E的ASCII码写入地址为200开始的内存单元中,再
用D命令观察结果,看键入的十六进制数和ASCII码的对应关系。
汇编语言程序设计实验指导133 6、用H命令检查下列各组十六进制数的和与差(补码表示):
(1)56H,34H(2)23H,45H(3)AB,3045H
注:输入H1234则在下一行显示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。
汇编语言程序设计134
二、8086常用指令练习
1、传送指令
1)用A命令在内存400H处键入下列内容:
-A0400
****:0400MOV AX,1234
****:0403MOV BX,5678
****:0406XCHG AX,BX
****:0408MOV AH,10
****:040A MOV AL,20
****:040C MOV CX,89AB
****:040F XCHG AX,CX
****:0411
-
注:****为段寄存器CS的当前值,内容是不一定的,每行命令以回车键结束。
2)用U命令检查键入的程序并记录,特别注意左边的机器码与指令的对应关系。
-U0400
3)用T命令逐条运行这些指令,每运行一行指令观察各寄存器及IP的变化情况,并注意
标志位的变化情况。
-T=0400(注:=400是表示从偏移地址400处开始单步执行)
-T(不给出地址,则表示接续上一条指令执行)
-T
汇编语言程序设计实验指导135┇
2、加减法指令:
1)用A命令在内存100H处键入下列内容:
MOV AH,11
MOV AL,22
ADD AL,AH
汇编语言程序设计136 SUB AL,33
MOV CX,1234
MOV DX,5678
ADD CX,DX
SUB CX,AX
SUB CX,CX
2)用U命令检查键入的程序及对应的机器码。
3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论