- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计 PAGE 136
汇编语言程序设计实验指导 PAGE 135
汇编语言程序设计实验指导
【实验提要】 以下列举的10个实验,都是以Intel的8086及后续系列微处理器的指令系统为核心,采用宏汇编工具MASM6. X以及调试工具DEBUG或DEBUG32,针对本教材所述内容进行相关的上机实践。旨在帮助学生加深认识和理解理论教学知识,通过大量的上机实验熟悉8086 CPU的指令功能、用途和使用技巧,进而提高汇编语言程序设计的能力。 (带*号的为选作内容)
实验一 调试工具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、用命令 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码写入地址为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的内容。
注:若在DEBUG32环境下用R16和R32命令分别显示16位和32位寄存器内容。
8、用R命令将AX,BX内容改写为1050H及23A8H。
二、8086常用指令练习
1、传送指令
用A命令在内存400H处键入下列内容:
-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的当前值,内容是不一定的,每行命令以回车键结束。
用U命令检查键入的程序并记录,特别注意左边的机器码与指令的对应关系。
-U 0400
用T命令逐条运行这些指令,每运行一行指令观察各寄存器及IP的变化情况,并注意标志位的变化情况。
-T =0400 (注:=400是表示从偏移地址400处开始单步执行)
-T (不给出地址,则表示接续上一条指令执行)
-T
┇
2、加减法指令:
1)用A命令在内存100H处键入下列内容:
MOV AH,11
MOV AL,22
ADD AL,AH
SUB AL,33
MOV CX,1234
MOV DX,5678
ADD CX,DX
SUB CX,AX
SUB CX,CX
2)用U命令检查键入的程序及对应的机器码。
3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。
3、带进位加减法:
1)用A命令在内存200H处键入下列内容,并用U命令检查:
MOV AH,12
MOV AL,84
MOV CH,56
MOV CL,78
ADD AL,CL
ADC AH,CH
MOV DH,A7
MOV DL,58
SUB DL,7F
SBB DH,34
2)用T命令逐条运行这些指令,检查并记录有寄存器及CF内容。
3)上面这段程序若改用16位操作指令达到同样结果,怎么改?试修改并运行之。
* 4、BCD码加减法(选作)
1)内容:
MOV AL,65
ADD AL,16
DAA
2)要求:用A 命令键入,U命令检查,T命令逐条运行并记录有关寄存器及AF内容。
注:相加后AL值本来是7B,经D
文档评论(0)