曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5422|回复: 0
打印 上一主题 下一主题

[8086] Debug

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2009-3-31 23:10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
           Debug 是DOS、Windows 都提供的实模式(8086模式)程序的调试程序。使用它,可以查看CPU各种寄存器中的内容、内存的情况和机器码级跟踪程序的运行。

常用到的 Debug 功能:
 1、R 命令:查看、改变CPU寄存器的内容。
 2、D 命令:查看内存中的内容。
 3、E 命令:改写内存中的内容。
 4、U 命令:将内存中的机器指令翻译成汇编指令。
 5、T 命令:执行一条机器指令。
 6、A 命令:以汇编的格式在内存中写入一条机器指令。
7、G 命令:直接运行到指定的地址
--------------------------------------------------------------------
-r  (列出所有的寄存器值)
-r ss  (查看ss段寄存器中的内容,其它类似)
---------------------------------------------------------------------
-d ds:0 (设ds:1000,则命令表示,查看从 1000:0 开始的内存区间的内容) 
-d ds:10 18 (查看 1000:10~~1000:18 中的内容)
-d cs:0 (查看当前代码段的内容)
-d  ss:0 (查看当前栈段中的内容)
-----------------------------------------------------------------------
T 命令在执行修改寄存器SS的指令时,下一条也会紧接着被执行。(由于中断机制)
像 mov ss,ax    mov ss, bx     mov ss,[0]     pop  ss 等这些指令都是修改SS的指令,那么紧跟着它们下面的那条指令会被紧接着执行,而不会在 t  命令执行一条时会停下来(看上去就是一下子执行了两条指令)。
-----------------------------------------------------------------------
G 命令可以让程序直接运行到指定的指令所在地址处
假设程序从 0B3D:0000 开始到 0B3D:001E 结束,中间有一条语句在 0B3D:0B3D:000F处,那么可以使用
g 000F
------------------------------------------------------------------------
P指令 可以用来一次性结束循环的执行(循环自动运行到结束)
如:
mov cx,0010h
loop_1: add ax,0001h
             loop loop_1
nop
在运行到 loop_1 这里时,使用 p 指令将会结束这个循环的运行而到达nop指令处。
        
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-20 15:17 , Processed in 0.075296 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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