文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第 2 章:寄存器
检测点 2.1
(1)写出每条汇编指令执行后相关寄存器中的值。
指令 | 寄存器值(十六进制形式) |
---|---|
mov ax, 62627 | AX = FA43 |
mov ah, 31H | AX = 3143 |
mov al, 23H | AX = 3123 |
add ax, ax | AX = 6246 |
mov bx, 826CH | BX = 826C |
mov cx, ax | CX = 6246 |
mov ax, bx | AX = 826C |
add ax, bx | AX = 04D8 |
mov al, bh | AX = 0482 |
mov ah, bl | AX = 6C82 |
add ah, ah | AX = D882 |
add al, 6 | AX = D888 |
add al, al | AX = D810 |
mov ax, cx | AX = 6246 |
注意:第一行左侧指令的数字非 H 结尾,应视为十进制数,运算时需要转换为十六进制。
(2)只能使用目前学过的汇编指令,最多使用 4 条指令,编程计算 2 的 4 次方。
mov ax, 2
add ax, ax
add ax, ax
add ax, ax
检测点 2.2
(1)给定段地址为 0001H,仅通过变化偏移地址寻址,CPU 的寻址范围为____到____。
答案:00010h;1000Fh
(2)有一数据存放在内存 20000H 单元中,现给定段地址为 SA,若想用偏移地址寻到此单元。则 SA 应满足的条件是:最小为____,最大为____。(提示,反过来思考一下,当段地址给定为多少,CPU 无论怎么变化偏移地址都无法寻到 20000H 单元?)
答案:(20000 - 0FFFF)/16 = 10001/16 = 1001h;20000/16 = 2000h
检测点 2.3
下面的 3 条指令执行后, CPU 几次修改 IP ? 都是在什么时候?最后 IP 中的值是多少?
mov ax, bx
sub ax, ax
jmp ax
答案:4 次。(1)第一行;(2)第二行;(3)第三行读完指令 IP 自动增加;(4)第四行执行完指令跳转到 ax;
实验一
- 这可能是最详细的 Windows Debug 详解 了_咸鱼的笔记-CSDN博客
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论