常用的八个命令

命令 解释
R 查看和修改寄存器
D 查看内存单元
E 修改内存单元
A 输入汇编指令
U 反汇编,将机器指令变为汇编指令
T/P 单步执行
G 连续执行
Q 退出

命令的详细介绍

R命令 — 查看和修改寄存器

R命令有两种用法:

  • 直接键入R — 显示CPU所有的寄存器和标志位

  • 在R后面跟上寄存器名 — 先会显示后面跟上的寄存器的内容,然后再在冒号后键入新的值就可以修改了

D命令 — 查看内存单元

内存每16个字节为一行,用D命令可以查看存储单元的地址和内容,默认查看8行 格式:

D 段地址:起始偏移地址 [结尾偏移地址] [L范围]

例如: D DS:0 — 查看数据段,从0号单元开始

D 900:A F — 查看地址0x900A-0x900F这五个地址的内容

D CS:0 16 — 查看代码段,从0x0偏移开始,一共读取前面16个字节

D 100 — 查看当前段(缺省),从0x100偏移量开始读取数据

E命令 — 修改内存单元

使用E命令可以改写多个存储单元的内容 格式:

E 起始地址 修改值1 修改值2 …

例如: ** E DS:3 48 65 6C 6C 6F** — 将DS:3 ~ DS:8三个单元的内容修改为Hello

A命令 — 输入汇编指令

输入汇编指令,系统将自动将键入的汇编指令翻译成机器代码,并相继地存放在从指定地址开始的存储区中 若只输入A命令,则系统会自动的给出逻辑地址为073F:0100[CS:偏移地址]

例如: 计算0x12+0xF的值,结果保存在AX中

同时也可以在A命令后给出指令的存放地址,例如:A CS:0000,表示从代码段的0号单元开始存放输入的指令

U命令 — 反汇编指令

U命令可以将二进制的机器指令变成助记符形式的汇编指令 默认会反编译当前段的当前偏移量,每次偏移量会递增32字节 格式:

D 段地址:起始偏移地址 [结尾偏移地址] [L范围]

T/P命令 — 单步执行

当输入完指令后,需要通过T/P命令去执行它

T命令 — 步入逐过程单步执行 P命令 — 步出单步执行

T命令还可以连续执行多条指令 T 3 — 连续执行3条指令 T命令也可以设置开始地址和执行条数 T =0100 3 — 从CS:0100开始执行指令,执行3条 计算0xFF+0x16,并将结果写入到DS段的偏移0x2000处 查看当前CS:IP指向的地址,从其指向的地址开始输入汇编指令

填入汇编代码

按T单步执行,同时可以查看寄存器的值

使用D 2000 LF 查看DS段偏移0x2000处开始前面0xF个字节,可以发现写入成功(小端存储)

G命令 — 连续执行

从起始地址开始执行(缺省时为当前CS:IP指向的指令),执行到断点地址;如果不设置断点,则程序一直运行到中止指令才会停止。 格式:

G [=起始地址] [断点地址]

Q命令 — 退出DEBUG,回到DOS状态