第一章 基础知识
检测点1.1
- 13
- 1024 0 1023
- 8192 1024
- 1073741824 1048576 1024
- 64 1 16 4
- 1 1 2 2 4
- 512 256
- 二进制
寄存器
检测点2.1
检测点2.1.1
| 指令 | AX | BX | CX | 备注 |
|---|---|---|---|---|
mov ax, 62627 |
F4A3H | - | - | 62627(十进制) = F4A3H |
mov ah, 31H |
31A3H | - | - | 只改 AH,AL 保持 A3H |
mov al, 23H |
3123H | - | - | 只改 AL,AH 保持 31H |
add ax, ax |
6246H | - | - | 3123H + 3123H = 6246H |
mov bx, 826CH |
6246H | 826CH | - | BX 赋值 |
mov cx, ax |
6246H | 826CH | 6246H | CX ← AX |
mov ax, bx |
826CH | 826CH | 6246H | AX ← BX |
add ax, bx |
04D8H | 826CH | 6246H | 826CH + 826CH = 104D8H,高位舍弃 |
mov al, bh |
0482H | 826CH | 6246H | AL ← BH(82H),AH 保持 04H |
mov ah, bl |
6C82H | 826CH | 6246H | AH ← BL(6CH),AL 保持 82H |
add ah, ah |
D882H | 826CH | 6246H | AH = 6CH + 6CH = D8H,AL 不变 |
add al, 6 |
D888H | 826CH | 6246H | AL = 82H + 6H = 88H,AH 不变 |
add al, al |
D810H | 826CH | 6246H | AL = 88H + 88H = 10H(进位舍弃),AH 不变 |
mov ax, cx |
6246H | 826CH | 6246H | AX ← CX,恢复为 6246H |
说明: 加粗表示该寄存器在本条指令中发生了改变。最后一列备注解释了运算或操作过程。
检测点2.1.2
mov ax, 2
add ax, ax
add ax, ax
add ax, ax
检测点2.2
- 00010H-1000FH
- 最小1001H 最大2000H
- 当段地址<=1000H或段地址>=2001H时CPU无论怎么变化偏移地址都无法寻到20000H单元
问题2.3
B8 22 66 EA 03 00 00 10 B8 00 00 8B D8 FF E3 B8 23 01 …循环
检测点2.3
四次修改IP
第一次:mov ax, bx指令进入指令缓冲器后
第二次:sub ax, ax指令进入指令缓冲器后
第三次:jmp ax指令进入指令缓冲器后
第四次:jmp ax指令执行完毕后
最后的值为0