【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)

1.介绍

Debug程序是DOS、Windows都提供的实模式(8086方式)程序的调试工具,使用该工具可以完成:

  • 查看CPU中寄存器的内容;
  • 查看内存的情况;
  • 在机器码级别跟踪程序的运行;

注:64位的操作系统(win7、win10)不带Debug程序,请使用虚拟机安装DOS系统(参考:【VMware12 中安装MS-DOS 7.10】)。

2.进入Debug程序

在DOS系统中直接输入debug即可进入:
【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第1张图片

3.使用

Debug的命令比较多,共有20多个,常用的有7个,先作以概述,然后分别讲解。

3.1. 常用命令总结

命令(不区分大小写) 功能
R 查看、改变CPU寄存器的内容
D 查看内存中的内容
E 改写内存中的内容
U 将内存中的机器指令翻译成汇编指令
T 执行一条机器指令
A 以汇编指令的格式在内存中写入一条机器指令

3.2. 用R命令查看CPU寄存器的内容


3.3. 用R命令改变CPU寄存器的内容

使用R <寄存器名称>来修改寄存器中的内容,出现:时输入要修改的数据,回车完成修改。
【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第2张图片

3.4. 用D命令查看内存中的内容

D命令中可以直接使用地址查看内存内容,也可以使用段寄存器查看内存内容。

  • 查看指定地址的数据(默认显示128个内存单元):d <段地址>:<偏移地址>
    【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第3张图片
  • 查看指定区间的数据:d <段地址>:<起始偏移地址> <结束偏移地址>
  • 查看指定地址的内容后,可以使用d接着查看
    【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第4张图片
  • 查看DS段寄存器指示的内容:
  • 根据CS查看当前代码段所指示的指令:
    【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第5张图片
  • 根据SS查看当前栈中的内容:
    【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第6张图片

3.5. 用E命令改写内存中的内容

  • 整体修改
  • 单个修改
    【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第7张图片
  • 逐个修改
    【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第8张图片
  • 字符串修改
  • 写入机器码
mov ax,0001		;b80100
mov cx,0002		;b90200
add  ax,cx		;01c8

3.6. 用U命令将机器码翻译为汇编指令

【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第9张图片

3.7. 用T命令执行指令

【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第10张图片
【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第11张图片

3.8. 用A命令写入汇编指令

【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第12张图片
看看反汇编的效果:
【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第13张图片
最后再来执行以下看看效果:
【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令)_第14张图片

你可能感兴趣的:(【8086汇编】Debug工具的使用(查看和修改CPU寄存器内容、查看和修改内存内容、反汇编、执行指令))