1、实验一 DEBUG的使用和8086指令联系
一、实验目的
(1)掌握DEBUG各种常用命令的使用方法。
(2)掌握8086基本指令。
二、实验任务及内容
1.实验任务
通过第三章第19题练习debug的使用和8086指令。
2.源程序
MOV AX,2280H ;立即数2280H存在寄存器AH中
MOV CX,0FF00H
MOV DS,AX ;立即数不能直接存在段寄存器中,用其他寄存器传送
MOV SI,CX
ADD CX,AX ;寄存器内容相加,CX=2180H,CF=1B
MOV [SI],CX ;[SI]=80H,[SI+1]=21H
ADC
2、 [SI],AL ;[SI]=01H,MEM=32700H
DEC BYTE[SI] ;寄存器内容减1,[SI]=00H,ZFCFPF=111B
MOV AX,06
ADC AX,08 ;AX=000H,CFAF=00B
AAA ;调整两个操作数相加的结果,AX=0105H,CFAF=11B
ADD AL,59H ;AL=5EH,CFAF=00B
DAA ;寄存器中的内容换成BCD码形式,AL=64H
AND AL,0FH
MOV BX,-8
NEG BX ;BX=0008H
MOV DL,06
MUL DL ;AX=0018H
OR AX,0F
3、F00H
CWD ;AX=FF18H
IDIV BX ;AX=FFE3H,DX=0000H
MOV AH,4CH
INT 21H ;中断向量号,此后不可再用T命令,用P命令
3.基本知识(DEBUG(调试工具)的使用)
进入DOS模式或命令提示符:C:\> DEBUG
常用命令:
R (r) (Register):显示各REG的内容AX,BX,CX,DX,CS, DS,ES,SS,IP,SI,DI,BP,SP,FR。
有13个REG都显示具体的数字,只有FR是用字母表示的。
FR:当各标志都为1时,即OF=DF=IF=SF=ZF=AF=PF=CF=1,
4、八个标志对应字母如下:OV,DN,EI,NG,ZR,AC,PE,CY;
而各标志都为0时,即OF=DF=IF=SF=ZF=AF=PF=CF=0,
八个标志对应字母如下:NV,UP,DI,PL,NZ,NA,PO,NC。
T (Trap):单步运行命令,每次执行一条指令,即IP=0100对应的一条指令。
A 100 (Assemble 汇编命令):从100H开始输入指令,每输入一条回车,可退出。
U 100 (Unassemble 反汇编命令):从100H开始把程序与指令(代码)显示出来。
Q (Quit):结束DEBUG程序,退回DOS。
三、调试过程及实验结果
1.调试
5、过程
(1)进入DOS模式或命令提示符,C:\> DEBUG
(2) 用A命令从100H开始输入指令,每输入一条回车。
(3) 用U命令对目标代码反汇编,观察反汇编后的结果。注意源程序的起始位置,并记录这个地址。
(4) 用T命令作单步跟踪调试。比较每条指令执行后的结果和原来的理解是否一致,得出程序运行的结果:单元和具体内容,并判断结果是否正确。
(5) 用Q命令结束DEBUG程序,退回DOS。
2. 实验结果
3. 实验中出现的问题及解决方法
调试过程中未产生大的问题,但对DOS环境下的输入有了新的认识,改变了一些错误的输入习惯。
四、结果分析与实验体会
1.结果分析
每条指令执行后的结果和原来的预想的结果一致。
2.心得体会及改进意见
本次试实验式微机原理与接口技术课程的第一次实验,因平时主要是理论学习,对实际操作没有很多经验,经过本次实验的练习,基本掌握了debug对指令的调试使用方法,对8086指令在pc机上的执行有了立体的认识,给以后的实验打下良好的基础。希望以后在进行类似实验时,可让同学自己编一些简单的小程序进行练习。