微机原理上机实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理上机实验报告
姓名:***
学号:********
实验一 Debug程序的使用
一、实验目的
1.学习使用DEBUG调试命令。
2.学习用DEBU G调试简单程序。
3.通过程序验证码制及其对标志位的影响。
4.通过调试熟悉和掌握个寄存器的作用与特点。
二、实验内容
用DEBUG调试简单程序。
三、实验仪器
微机一台
四、实验步骤
1.由DOS进入DEBUG调试环境。
(1)C:>DEBUG将调试程序装入内存
注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG 的状态提示符,表示可以接受调试子命令了。
(2)-R 显示CPU中各寄存器当前初始内容,请记录下列各项:
AX=0000 BX=0000 CX=0000 DX=0000 BP=0000 SI=0000 DI=0000 DS=13B2 ES=13B2 SS=13B2 SP=FFEE CS=13B2 IP=0100 FLAG寄存器中的8个标志位状态值是:
OF DF IF SF ZF AF PF CF
0 0 1 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 -A CS:0106
MOV AX,1234
MOV BX,2345
MOV CX,0
ADD AX,BX
MOV CX,AX
INT 20
运行程序
(注:执行程序时IP应指向要执行的指令,需要修改时
-RIP
当前值
输入需要值该处为0106
当然也可以在T或G命令中指出程序起始地址)
-R 显示各寄存器当前内容及首条指令
-T 3 跟踪执行三条赋值传送指令,观察寄存器及标志位变化
-T 2跟踪执行相加及送和数指令,观察寄存器及标志位变化
-G 执行软件中断指令INT 20,机器将显示“程序正常终止”的信息,并显示“-”,表明仍处在DEBUG的调试控制状态下,注意未用T命令,因为我们不想进入到20H 中断处理程序中去,P命令也可实现相同操作
实验现象记录:观察每条指令执行后各相关寄存器值及标志位状态
例2 -A CS:116
MOV AX,[0124]
MOV BX ,[0126]
ADD AX,BX
MOV [0128],AX
INT 20
DW 2222
DW 8888
DW 0
设置断点分段运行程序
-G=CS:116 11D 从指定入口运行程序,至断点11D停,可见两个数已取至AX,BX,但还没有求和
-G122 从上一断点运行至新断点停,已完成求和并存入指定结果单元
-G 完成程序
观看内存内容
-DCS:116 12A 显示本程序小段目标代码和数据单元内容
-UCS:116 12A 反汇编指定范围的内存内容
-
实验现象记录:通过反汇编,记录程序执行前指定范围的内存内容,并记录每条指令执行后各相关寄存器值及指定范围的内存内容)
例3 -A CS:0192
MOV DX,19B
MOV AH,9
INT 21
INT 20
DB ‘HELLO,WORLD! $’
-P 命令单步执行
实验现象记录:观察每条指令执行后各寄存器的变化,记录DX,AX的变化。
思考:根据程序输入情况,考虑‘HELLO,WORLD!$’在内存中的ASCⅡ码和地址范围
-D 0194 01a7
ASCⅡ码为:48 45 4c 4c 4f 20 57 4f 52 4c 44 21 ;
例4 自己设计一段小程序验证补码的加法、进位、溢出的概念;
参考程序(可对数据进行修改):
-A CS:0100
MOV AL,74
ADD AL,70
MOV AL,7A
ADD AL,94
MOV AL,43
ADC AL,65
INT 20
-P命令单步执行
实验现象记录:记录每条指令执行后AX及标志位变化
例5
1.使用R命令,实现AX=0108,BX=F1AA
-R AX -R BX
AX 0000 BX 0000
:0108 :F1AA
2.编辑下列程序
-A CS:0100
MOV AL,05
MOV BL,09
MUL BL
AAM
INT 20
-P 命令执行单步执行
实验现象记录:记录每条指令执行后,AX、BX以及标志位的变化。
例6 执行下列程序,用P命令或T命令跟踪
-A CS:0100
MOV AX,0200
MOV DX,1E4F
CALL AX ;调用子程序
MOV DX,167C
ADD DH,DL
MOV [0300],DX
INT 20
;********下面是子程序段********
-A CS:0200a
PUSH AX
MOV AX, 010B
POP AX
RET