常用的八个命令
命令 | 解释 |
---|---|
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 [=起始地址] [断点地址]