微机原理实验报告.doc
试验一Debug程序的使用
一、试验目的
学习使用DEBUG调试命令。
学习用DEBUG调试简朴程序。
通过程序验证码制及其对标志位的影响。
通过调试熟悉和掌握个寄存器的作用与特点。
二、试验内容
用DEBUG调试简朴程序。
三、试验仪器
微机一台
四、试验环节
1.由DOS进入DEBUG调试环境。
C:DEBUG将调试程序装入内存
注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG的状态提醒符,表达可以接受调试子命令了。
-R显示CPU中各寄存器目前初始内容,请记录下列各项:
AX=0000
BX=0000
CX=0000
DX=0000
BP=0000
SI=0000
DI=0000
DS=13D4
ES=13D4
SS=13D4
SP=FFEE
CS=13D4
IP=0100
FLAG寄存器中的8个标志位状态值是:
OF
DF
IF
SF
ZF
AF
PF
CF
0
1
0
0
0
0
0
0
DEBUG用符号给出标志寄存器中8个标志位的目前状态,其含义如下表所示。
标志位含义
‘1’的对应符号
‘0’的对应符号
OF溢出
OV有
NV无
DF方向
DN递减
UP递增
IF中断
EI容许
DI严禁
SF符号
NG负
PL正
ZF全零
ZR零
NZ非零
AF辅助进位
AC有
NA无
PF奇偶性
PE偶
PO奇
CF进位
CY有
NC无
2.用DEBUG调试简朴程序
例1-ACS:0106
MOVAX,1234
MOVBX,2345
MOVCX,0
ADDAX,BX
MOVCX,AX
INT20
运行程序
(注:执行程序时IP应指向要执行的指令,需要修改时
-RIP
目前值
输入需要值该处为0106
当然也可以在T或G命令中指出程序起始地址)
-R显示各寄存器目前内容及首条指令
-T3跟踪执行三条赋值传送指令,观测寄存器及标志位变化
-T2跟踪执行相加及送和数指令,观测寄存器及标志位变化
-G执行软件中断指令INT20,机器将显示“程序正常终止”的信息,并显示“-”,表明仍处在DEBUG的调试控制状态下,注意未用T命令,由于我们不想进入到20H中断处理程序中去,P命令也可实现相似操作
试验现象记录:观测每条指令执行后各有关寄存器值及标志位状态
例2-ACS:116
MOVAX,[0124]
MOVBX,[0126]
ADDAX,BX
MOV[0128],AX
INT20
DW2222
DW8888
DW0
设置断点分段运行程序
-G=CS:11611D从指定入口运行程序,至断点11D停,可见两个数已取至AX,BX,但还没有求和
-G122从上一断点运行至新断点停,已完毕求和并存入指定成果单元
-G完毕程序
观看内存内容
-DCS:11612A显示本程序小段目的代码和数据单元内容
-UCS:11612A反汇编指定范围的内存内容-
试验现象记录:通过反汇编,记录程序执行前指定范围的内存内容,并记录每条指令执行后各有关寄存器值及指定范围的内存内容)
例3-ACS:0192
MOVDX,19B
MOVAH,9
INT21
INT20
DB‘HELLO,WORLD!$’
-P命令单步执行
试验现象记录:观测每条指令执行后各寄存器的变化,记录DX,AX的变化。
思索:根据程序输入状况,考虑‘HELLO,WORLD!$’在内存中的ASCⅡ码和地址范围
-D019401A7
ASCⅡ码为:48454C4C4F20574F524C4421;
例4自己设计一段小程序验证补码的加法、进位、溢出的概念;
参照程序(可对数据进行修改):
-ACS:0100
MOVAL,74
ADDAL,70
MOVAL,7A
ADDAL,94
MOVAL,43
ADCAL,65
INT20
-P命令单步执行
试验现象记录:记录每条指令执行后AX及标志位变化
例5
1.使用R命令,实现AX=0108,BX=F1AA
-RAX-RBX
0108
2.编辑下列程序
-ACS: