QQ登录

只需一步,快速开始

搜索
【活动】边做笔记边学习,还能赢取奖学金!
查看: 54|回复: 0

[学习笔记] 《汇编语言》第二章debug的使用知识(第一阶段)

[复制链接]
累计签到:147 天
连续签到:4 天
最佳答案
6 
发表于 2017-7-16 16:09:43 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

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

1.png

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

2.png

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

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

3.png

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

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



接着继续按d

4.png

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

5.png

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

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

6.png

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

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

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

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

先用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
9.png

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

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

10.png

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

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

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

-a 1000:0
12.png
  
先用a命令写入汇编指令
然后用U命令查看对应的机器指令和汇编指令

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

本帖被以下淘专辑推荐:

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-7-28 12:42 Powered by Discuz! X2.5 Theme by dreambred

快速回复 返回顶部 返回列表