debug 常用命令

1)-r(register) 查看寄存器当前值(debug将程序加载入内存,cx为程序长度,cs当前执行程序段地址,ip当前执行程序偏移地址,ds整个程序所在区的段地址:dos中留出256字节(100H)的psp,所以cs=ds+10)

ex: -r ax

    :  //修改寄存器值

 

2)-d(dump)查看内存内容 段地址: 偏移地址起 [偏移地址末]                                                                   ex: -d 1000:0//1000:0~1000:7F从指定内存单元开始共80H=8*16=128个内存单元的内容

    -d//默认接着1000:80一直往下看

    -d 0fff:10 10//同-d 0100:f000 f000, 都表示了10000H这个物理地址的内存内容

 

3)-e(enter)改写内存内容 起始地址 数据 数据, e与a相对应,a为写好认的汇编语句

ex:-e 1000:0 0 1 2 3

   -d 1000:0 f//查看修改情况

   -e 1000:0//enter

   ://输入改写数据,空格,下一个,enter退出

    -e 1000:0 ‘a’ ‘b’’c’//可写入字符

-d 1000:0 2//61,62,63

写机器码与a对应

机器码       对应的汇编指令

b80100       mov ax, 0001

b90200       mov cx, 0002

01c8         add ax, cx

ex: -e 1000:0 b8 01 00 b9 02 00 01 c8

-d 1000:0 1f//查看内容 1000:0000~1000:0020

-u 1000:0//

1000:0000 b80100      mov ax, 0001

1000:0003 b90200      mov cx, 0002

1000:0006 01c8         add ax, cx

-r//查看cs ip状态

    -r cs

    cs XXXX//cs当前是某个值

    :1000//修改为1000

    -r ip

    ip XXXX//ip 当前是某个值

    :0//修改为0,把当前命令指向刚写入的1000:0中的命令

    -r

    -t//执行1条命令,此时ax=0001, ip=ip+3(因为mov ax, 0001指令长度为3, cs:ip指向下一条指令) ,往下-t类推

 

 

 

4)-u(unassemble)将内存中的机器指令翻译成汇编指令

3部分, 每一条机器指令的地址、机器指令、机器指令所对应的汇编指令

5)-t(trace)执行一条机器指令

 

6)-a(address)以汇编指令的格式在内存中写入一条机器指令,debug把键入的数字默认为十六进制,要键入十进制则后加D,入100D

e命令写入机器指令不方便, a直接以汇编形式写入机器指令

-a

1000:0000 mov ax,1

1000:0003 mov bx,2

1000:000f//enter结束

 

9)-p 执行int 21, 显示‘Program terminated normally’,返回到debug中,表示程序正常结束

 

-q退出debug

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值