在本教程之前有一个重要的说明说明:Debug中在提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行。
Debug的主要命令有R,D,A,U,T,G这几个,接下来详细的介绍一些每个命令的用法与作用。
R命令的使用
R命令的作用是观看和修改寄存器和标志位的值。
主要的指令有:
-r
-r<寄存器或标志位名>
r:
输入r后将会显示所有寄存器和标志位的状态。
r<寄存器或标志位名>:
此功能是修改寄存器和标志位的值。比如要修改AX的值就先输入-rax,按回车,在出现‘:’号后输入数值就能修改了。
D命令的使用
D命令主要是显示内存区域的内容。
前面已经介绍过了,命令R的作用是显示当前寄存器的值。而命令D的作用是显示内存区域的内容,最左边是内存的起始地址,中间以十六进制的形式显示内存值,最右边是以ASCII码的形式显示内存值。每行最多显示16个字节的内容。
主要的指令有:
-d [起始位置]
-d [起始位置] [结束位置]
-d [起始位置] [L长度]
命令D可以带参数也可省略参数。设DEBUG启动时DS的值为X,当省略参数时,命令D显示内容以X:100为起始,每次显示128个字节的内容。以后再执行不带参数的命令D时,DEBUG将按上次的位置接着显示下去。
如要显示从073F:0100到073F:0160内存区域的内容,就输入-d 073F:0100 16F。
如果只要显示073F:0100后5个字节内容,就输入-d 073F:0100 L5就行了。
A命令的使用
A命令的主要作用就是输入汇编指令。
主要指令有:
-a
先输入-a然后就会出现地址后面加冒号,在冒号后面输入汇编指令,后按回车键,继续输入汇编指令,输完后,不写入任何指令直接回车,即可退出编辑。
U命令的使用
U命令主要是对机器代码反汇编显示
输入-u后就能看见输入的汇编指令。比如我上面输入了的A指令:
mov ax,1234
mov bx,5678
再输入-u,就能看见刚才输入的指令。
如果你想看指定位置的代码,可以输入-u[范围],如-u100,就能看见从0100开始的机器码的反汇编。
T命令的使用
T命令主要是执行汇编指令,单步跟踪。
T命令的使用方式是T [=地址] [指令数]。如果忽略“地址”的话,T命令从CS:IP处开始运行。“指令数”是要单步执行的指令的数量。
比如还是按照我上面输入的A指令,先输入-t回车后,mov ax,1234就被执行了,同时还显示出执行的结果
我再次输入-t回车后,mov bx,5678紧接着被执行。
G命令的使用
G指令主要的作用也是执行汇编指令,不过和T指令不同的是,G指令不是逐条执行,而是一次性多条执行。
G命令的使用方法是G [=起始地址] [断点地址],意思是从起始地址开始执行到断点地址。如果不设置断点,则程序一直运行到中止指令才停止。
在设置完示例九的的内存数据并且输入完示例九的程序后运行这些汇编代码。在DEBUG中执行命令-g=100,观看运行结果。
汇编程序运行后在屏幕上显示出“ABCD”四个字符。
后记
其实debug的指令不止这些,这里介绍的都是最常用的指令,对于初学汇编的同学来说已经足够了,最后祝大家身体健康。
欢迎关注我的微博哦