目录
西安财经大学信息学院
实验名称:DEBUG命令调试
一、实验目的及要求
1.熟悉debug的 应用,为学习指令系统打好基础;
2.利用debug观察寄存器的值;
3.直接汇编指令,单步调试,编辑数据
二、实验环境
硬件环境:一台微型计算机;
软件环境:windows 10, dosbox, debug环境,masm
三、实验内容
练习dos环境下debug命令;
四、实验过程
-
r 命令:查看寄存器的值
上面就可以看到当前寄存器的状态(数值)
当前的指令指针位于CS:IP 073F:0100
数据段从073F0K开始
r 如果命令带上寄存器这个参数可以修改寄存器的数值,如下将ax的数字修改成24
2.d 命令查看内存地址之中的数字
使用方法
- 无参数
当不带参数的时候显示当前ds:ip内容,如过在一次执行会显示后续内容
- 段地址:偏移地址
当参数为段地址:偏移地址时,默认显示包括该地址的后续128个字节
上面显示的是1000:0 -1000:006F的地址
- 段地址:偏移地址 最大显示地址
如上显示的内存单元为1000:0 - 1000:f 共十六个字节的内容
4.e命令:把给定的数据送到指定地址开始连续的内存单元
如下图,然后用d命令查询内存单元的内容,如下图,把20h送到1000:0000单元,用d命令指令查看1000:0000单元的内容为20;
5.u命令:反汇编 ;
这个命令可以将内存区域反汇编代码之后显示,例如显示当前区域的汇编代码
也可以通与段地址:偏移地址为参数显示,如下将1000:0段显示为汇编代码
6.a 修改内存单元汇编代码
可以加上参数段地址:偏移地址,
一下是为a,指令将当前的代码修改成
mov ax,2
mov bx,3
mov ax,bx
add ax,bx
add ax,1
add ax,1
add ax,1
mov ax,1000
mov ds,ax
mov ax,2000
mov bx,10
mov ss,ax
mov sp,10
通过u命令显示反汇编代码
7. t命令:从指定地址开始执行指令
也可以指定执行指令的条数,如下图,执行后显示每条指令执行完后的所有寄存器内容和标志为的状态;
下面为执行的4中修改的命令
mov ax,2
mov bx,3
mov ax,bx
add ax,bx
add ax,1
add ax,1
add ax,1
mov ax,1000
mov ds,ax
mov ax,2000
mov bx,10
mov ss,ax
mov sp,10
8.g 命令:
从指定地址开始执行程序,直到程序结束或遇到int3;或者是从指定的地址开始,到指定的终止地址执行;
将2000:0内存区域的代码修改成
mov ax,3
mov bx,5
mov cx,bx
mov bx,ax
mov ax,cx
int 3
;交换ax,bx的值
g 2000:0命令执行之后
程序崩溃
9.q命令:退出debug;
五、实验体会
在本次实验之中我学会debug的环境的命令操作,掌握了一些基本汇编命令操作,将直接汇编指令,单步调试,编辑数据操作的十分熟练。理解了8086CPU的原理。