若余相思 发表于 2017-7-16 15:52:24

《汇编语言》第二章debug的使用知识(第一阶段)

如何进入debug?
一、在开始菜单运行处输入cmd
二、在命令行窗口输入debug即可进行debug

1、查看、修改CPU中寄存器的内容:R命令
如查看寄存器的内容”r“:
-r



如修改某一寄存器的内容”r 某一寄存器“
-r cs


将CS寄存器原来的数据是1000改为2000

2、查看内存中的内存:D命令
如查看内存中的内容”d 段地址:偏移地址“
-d 1000:0


最左边那一列为每行内存物理地址。中间那一列是从指定的地址开始的128个字节的内存单元的内容,一行的中间”-“是表示将一行分成两半。最右边那一列是每一行对应的ASCII码字符,没有可对应显示的debug用”.“来代替。

继续查看接下来的内容,可以在使用了“d 段地址:偏移地址”后继续按d
-d 1000:0


接着继续按d


可以指定d命令的查找范围,采用”d 段地址:偏移地址 结尾偏移地址“
-d 1000:0 9


这样便可以查看从10000到10009内存中的内容

修改内存中的内容:E命令(可以写入数据、指令在内容中)
方式一 ”e 起始地址 数据 数据.......“
-e 1000:0 0 1 2 3 4 5 6 7 8 9


先用d命令查看了1000:0内存中的内容
然后用e命令修改了前10个字节的内容
最后查看从1000:0开始的16个字节的内容

方式二 ”e 段地址:偏移地址“
-e 1000:10


先用e 1000:10一个一个的修改了内容,注意按空格是跳到下一个字节修改,按enter表示结束输入
然后用d命令查看了内容

另外可以用e命令可以写入字符
-e 1000:0 1 ’a‘ 2 ’b‘ 3 ’d‘ 4


先用e命令写入了字符
然后在查看内容,debug会将其字符转化为ASCII码对应的数值

用e命令可以写入机器码
例如有如下的一段机器码和对应的汇编指令
机器码                  对应的汇编指令
b80100                mov ax,0001
b90200                mov cx,0002
01c8                  add ax,cx

用e命令写入机器码
-e 1000:0 b8 01 00 b9 02 00 01 c8


先用e命令写入了机器码
然后用d命令查看内容

将内存中的内容解释为机器指令和对应的汇编指令 :U命令
u 段地址:偏移地址
-u 1000:0



执行CS:IP指向的内存单元处的指令:T命令
按t即执行CS:IP中的内容
-t


先用r命令查看寄存器的内容
然后修改CS和IP中的内容
最后执行CS:IP所指向的指令

以汇编的形式向内存写入命令:A命令
a 段地址:偏移地址

-a 1000:0


先用a命令写入汇编指令
然后用U命令查看对应的机器指令和汇编指令

总结:
在debug中用R命令查看或修改寄存器的内容,
用d命令查看内存中的内容
用e命令修改内存中的内容,也可以写入机器指令
用u命令查看对应的机器指令和汇编指令
用t命令执行CS:IP指向的单元处的指令
用a命令写入汇编指令


页: [1]
查看完整版本: 《汇编语言》第二章debug的使用知识(第一阶段)