当前位置: 汇编教程 > 02-寄存器 > 阅读正文

汇编 Debug程序的使用

2021.7.12.   381 次   812字

首先,你应该安装dosbox及其工具包,或者你是在xp环境下,才自带有debug.exe

打开debug

对应dosbox,那么按照第一篇给出的步骤,挂载后直接输入debug就可以了

xp的debug可能处于保护模式,进入cmd输入debug即可。

win10等其他版本无内置debug时,可以下载dosbox以及工具包

debug开始时,可以指定程序,例如 debug hello.exe

常用命令

debug指令非常多,很多不常用,这里仅讲一部分命令

R命令

r命令可以查看寄存器内容,上2行显示寄存器,后1行显示当前cs:ip地址以及指令内容

此外,还可以改寄存器内容,r ax 就能修改ax的值,包括cs,ip寄存器等

D命令

d命令仅可以查看内存,无其他作用

可以指定段地址和迁移,如 d 138c:0100

由于默认显示的范围有限,可以指定终止范围,例如 d 138c:0 ff

A命令

a命令的作用是,以汇编的格式向内存中写入指令

可以指定写入的基址和迁移,a 基址:偏移

注意: 此指令下模式是数据默认是16位,你应该这么写

mov ax 1  ;//表示0001h,不能手动加h
mov bx 3333;  //表示3333h

U命令

u命令能够翻译内存中的数据为汇编指令,默认是当前cs:ip接下来的一段地址

可以指定翻译地址,u 138c:0100

翻译后, 将得到机器码, 以及它所对应的每一条指令

T命令

t命令可以执行当前cs:ip地址的一条指令

在执行前可以通过r命令查看当前cs:ip,或修改cs:ip

E命令

e命令以16进制方式向内存中写入数据

写入的可以是指令或数据,可指定地址,e 基址:偏移,写入时按空格继续写,按回车终止

连续写入时,可以直接写入,如 e076c:0000 31 33 24,后面是写入内容

由于地址是合成的,所以有多种写法,例如

ffff:05==fff0:f5

如果是 ROM,比如bios中的内容不能直接改,虚拟机并非真正ROM。

退出debug,可输入q,或quit或直接关闭窗口。

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群