实验一Debug程序的使用

更新时间:2023-10-05 08:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

湖北科技学院计算机科学与技术学院

《微机接口技术》实验报告

学号: 124221031 姓名: 李亮亮

实验题目: Debug程序的使用实验报告

指导老师: 范建军 实验日期: 2014.11.21

一、实验目的

1. 学习使用DEBUG调试命令。 2. 学习用DEBUG调试简单程序。

3. 通过程序验证码制及其对标志位的影响。 4. 通过调试熟悉和掌握个寄存器的作用与特点。

二、实验内容

用DEBUG调试简单程序。

三、实验仪器

微机一台

四、实验步骤

1.由DOS进入DEBUG调试环境。 (1) C:>DEBUG 将调试程序装入内存

注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG的状态提示符,表示可以接受调试子命令了。

(2) -R 显示CPU中各寄存器当前初始内容,请记录下列各项: AX=0000 DS=073F 如图所示:

BX=0000 ES=073F CX=0000 SS=073F DX=0000 SP=00FD BP=0000 CS=073F SI=0000 IP=0100 DI=0000

FLAG寄存器中的8个标志位状态值是: OF 0 说明:

1) 此时,调试工作区的四个段值相同,指向同一起点,表明公用一个64KB空间; 2) SS:SP指向堆栈顶单元,SP为FFFE或FFEE,正好是本段的最高可用地址,表明堆

DF 0 IF 1 SF 0 ZF 0 AF 0 PF 0 CF 0 栈自动使用最高地址,栈区由底向上生长;

3) CS:IP为约定的调试工作区地点(IP=0100),可由此装入待调试程序代码,或汇编

键入的程序小段,工作区由低址往下使用;

4) DEBUG用符号给出标志寄存器中8个标志位的当前状态,其含义如下表所示。 标志位含义 OF溢出 DF方向 IF中断 SF符号 ZF全零 AF辅助进位 PF奇偶性 CF进位 ‘1’的对应符号 OV有 DN递减 EI允许 NG负 ZR零 AC有 PE偶 CY有 ‘0’的对应符号 NV无 UP递增 DI禁止 PL正 NZ非零 NA无 PO奇 NC无 (3) 结束程序,返回DOS。 -Q

2.用DEBUG调试简单程序

例1 -A CS:0106 MOV AX,1234

MOV BX,2345 MOV CX,0 ADD AX,BX MOV CX,AX INT 20

运行程序

(注:执行程序时IP应指向要执行的指令,需要修改时 -R IP 当前值

输入需要值 该处为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 完成程序 观看内存内容

-D CS:116 12A 显示本程序小段目标代码和数据单元内容 -U CS:116 12A 反汇编指定范围的内存内容-

实验现象记录:通过反汇编,记录程序执行前指定范围的内存内容,并记录每条指令执行后各相关寄存器值及指定范围的内存内容

例3 -A CS:0192

MOV DX,19B MOV AH,9 INT 21 INT 20

DB ‘HELLO,WORLD! $’

-P 命令单步执行(从P =CS:0192开始)

本文来源:https://www.bwwdw.com/article/lqrd.html

Top