汇编语言中Debug的使用

​ 学习汇编语言肯定需要工具来帮助解决问题,比如调试等.所以学习debug的使用也是比然的.下面介绍一些debug的常用命令.Debug是DOS、windows提供得实模式(8086方式)程序得调试工具。可以查看cpu各种寄存器的内容、内存使用情况和机器码级跟踪程序的运行

​ (汇编中应该是不区分大小写的~)

命令汇总

  1. R命令:查看、改变寄存器
  2. D命令:查看内存内容
  3. E命令:改写内存
  4. U命令:机器指令翻译成汇编指令
  5. T命令:执行一条机器指令
  6. A命令:以汇编指令的格式在内存写入一条机器指令

一、R命令的使用

  • 功能:查看改变CPU寄存器的内容

  • 命令格式:

    1. r 可以查看所有寄存器的内容;

      image-20200614100127586

    2. r ax ax为寄存器的名称,修改某个寄存器的内容;按下ENTER键之后,会出现‘:’作为输入提示符,后面输入数字,再按下ENRTER,即完成了对AX的修改。

      image-20200614100432318

二、D命令的使用

​ 功能:D命令是查看内存单元的命令。
​ 命令格式:

  1. d直接查看预设地址的内容。

  2. d 段地址:偏移地址:查看内存某处的内容。

    eg: 查看内存10000H处的内容,

    Debug将列出从指定位置开始的128个内存单元的内容。
    D命令会输出三个内容:

    • 左边是每行的起始地址;

    • 中间是内存单元的内容,每行的输出从16的整数倍地址开始

    • 右边是内存单元中数据对应的可显示的ASCII码字符,没有对应的字符则用”.“替代。
      eg: 查看1000:9处的内容

      image-20200614103307054

      还是从当前地址开始显示,但是前面1000:0H到1000:8H的不在显示

    • 使用上面的命令后,继续使用D命令可以列处后面的内容。

      image-20200614103559342

3.d 段地址:起始偏移地址 结尾偏移地址 查看指定范围的内容

image-20200614104157817

三、E命令的使用

  • 功能:改写内存的内容
  • 命令格式:
    1. e 起始地址 数据 数据 数据 数据 ……
      eg: image-20200614104602641

    2. 采用提问的方式改写

      • 输入地址e 1000:0 按下ENTER;

      • 显示当前位置,和内容加一个‘:’

      • 输入内容,可修改

      • 输入空格,下一个地址,输入ENTER结束

        image-20200614104915485

    3. E命令可以写入字符和字符串

      image-20200614105202142

    4. 也可以直接写入机器码。

      b80100  mov ax,0001
      b90200 mov cx,0003
      01c8 add ax,cx

      image-20200614121158381

四、U命令

  • 功能:查看机器码对应的汇编指令

  • 命令格式:U 起始地址

    eg:

    image-20200614121300693

五、T命令

* 功能:执行一条或多条指令,执行CS:IP指向的指令。  
* 命令格式:`t`
* 注意,首先利用r将CS:IP指向要运行的地址

image-20200614121825077

  • 执行t.

    image-20200614121910203

    执行完成自动显示寄存器状态,CS:IP指向下一条指令,输入t继续执行指令

六、A命令

  • 功能:以汇编指令的形式写入机器指令

  • 命令格式:A 地址

    eg:

image-20200614122319851

总结

​ 已经开始入门了,除了debug,还需要学会文件的编译和链接。继续加油!!!💤