R命令 查看寄存器的内容
CS:IP为 073F:0100指向当前CPU要读取、执行的指令。
下方:
CS:IP所指向的内存单元的机器码为 00 00,对应的汇编指令为 ADD [BX+SI],AL
R命令修改寄存器中的内容
r后面跟着想要修改的寄存器的名称,然后输入值,最后用r查看是否已修改。3
D命令 查看内存中的内容
d 段地址:偏移地址
要查看 00000H处的内容,先将这个地址表示为 段地址:偏移地址 的格式,然后用列出
- 中间是从 00000H开始的128个内存单元的内容;
- 左边是每行的起始地址;
- 右边是每个内存单元的数据对应的可显示的ASCII码字符。
E命令 修改寄存器中的内容
e 起始地址 数据 数据 数据 ...
E命令向内存中写入机器码,U命令查看机器码的含义,T命令执行内存中的机器码
用e命令向 内存单元地址为10000H的位置写入机器码
d命令查看机器码是否写入
u命令查看机器码的含义(把机器码翻译成汇编指令)
- 查看寄存器CS IP的值;
- 修改段寄存器CS为1000H,偏移地址寄存器IP为0000H;
- 查看修改之后寄存器CS IP的值;
- 执行写入的机器指令,发现AX为0001H,说明执行成功。同时IP自增3
A命令以汇编指令的形式在内存中写入机器指令
向内存中写入 汇编指令
修改CS和IP的内容,使CPU执行汇编指令
u命令将写入内存的机器码翻译为汇编指令
t命令执行汇编指令
实验任务
(1)使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。
1.用A命令 将指令 写入内存
u命令查看写入的指令
序号 | 机器码 | 汇编指令 | ax | bx | CS | IP |
---|---|---|---|---|---|---|
0 | 0000H | 0000H | 1000H | 0000H | ||
1 | b8 20 4e | mov ax,4E20H | 4E20H | 1000H | 0003H | |
2 | 05 16 14 | add ax,1416H | 6236H | 0006H | ||
3 | bb 00 20 | mov bx,2000H | 2000H | 0009H | ||
4 | 01 d8 | add ax,bx | 8236H | 000BH | ||
5 | 89 c3 | mov bx,ax | 8236H | 000DH | ||
6 | 01 d8 | add ax,bx | 046CH | 000FH | ||
7 | b8 1a 00 | mov ax,001AH | 0001AH | 0011H | ||
8 | bb 26 00 | mov bx,0026H | 0026H | 0014H | ||
9 | 00 d8 | add al,bl | 0040H | 0020H | ||
10 | 00 dc | add ah,bl | 2640H | 0022H | ||
11 | 00 c7 | add bh,al | 4026H | 0024H | ||
12 | b4 00 | mov ah,0 | 0040H | 0026H | ||
13 | 00 d8 | add al,bl | 0066H | 0028H | ||
14 | 04 9c | add al,9CH | 0002H | 0030H |
FDDF