debug 各命令的介绍:
(1) R命令——查看、改变 CPU 寄存器的内容;
(2) D命令——查看内存中的内容;
(3) E命令——改写内存中的内容;
(4) U命令——将内存中的机器指令翻译成汇编指令;
(5) T命令——执行一条机器指令;
1、这个P和T都是执行,像这个语句add ax,bx ,你不管用哪个,都是执行这一句,但如果是call next 这个next是一个程序段,那么就不一样了,用P,直接就把这段程序执行完了,用T则进入内部一句一句的执行.这个和C语言的那些调试一样,有的进入函数内部,有的就执行完函数.
2、T(跟踪)命令:执行以cs:ip开始的一个或几个指令,并显示出执行每条指令后所有寄存器的内容
p 执行循环、重复的字符串指令、软件中断或子例程
(6) A命令——以汇编指令的格式在内存中写入一条机器指令。
debug 的命令一共有 20 多个,这只是常用的几个
debug的用法:
进入 debug 的方法——开始-运行-输入“command”
(1) 查看各寄存器内容 “r”;修改某个寄存器内容 “r 寄存器名称”,如“r cs”;查看内存中的内容.
(2) 命令“d”,查看指定位置的内存单元中的内容,"d 段地址:偏移地址",如“d 1000:0”指的是看 10000H 处内存单元中的内容,使用“d 段地址:偏移地址”后,接着使用 “d” 命令可以查看后续内存中的内容,也可以用“d” 命令指定查看的范围,“d 段地址:起始偏移地址 结尾偏移地址”。比如看 1000:0-1000:9 中的内容可以,用“d 1000:0 9”实现.
(3) e 命令,用“e 起始地址 数据一 数据二 数据三 数据四 .......”的格式来进行,可以用此命令向内存中写入字符,如“e 1000:0 1 'a' 2 'b' 3 'c' 4 'd'”,还可以写入字符串,如“e 1000:0 1 'a+b' 2 'c++' 3 'IBM'”。
(4) 我们可以用 e 命令向内存中写入机器码,用 U 命令查看内存中的机器码的含义,用 T 命令执行内存中的机器码,
用 “u 段地址:偏移地址” 来查看指定内存中机器码对应的汇编指令,我们使用 r 命令修改 CS, IP 的值来指向我们所写入的机器码指令,然后用 t 命令就可以执行了
(5) a 命令,我们可以用 a 命令直接写入汇编指令,使用 "a 段地址:偏移地址" ,然后逐条录入汇编指令,每输入一条指令,按enter 保存