找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 58|回复: 0

第13章习题

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-16 16:49:09 | 显示全部楼层 |阅读模式
第13章习题

1.在编译阶段,如果指定的是bits 16,那么,
mov bx, 16
的机器码为BB 10 00。相反,
mov ebx, 16
的机器码为66 BB 10 00 00 00。
试问,如果指定了bits 32,这两条指令编译后的机器码又分别是什么?
答:
32位操作尺寸下,16位操作要加前缀66,32位操作不加。所以上述两条指令的机器码分别是
66 BB 10 00
BB 10 00 00 00

2.以下程序片断:
bits 16
mov bx, 16                ;BB 10 00
mul bx                        ;F7 E3
将生成机器指令序列BB 10 00 F7 E3。
当处理器在32位保护模式下执行这些代码时,会有什么问题?
答:32位模式下,这些机器码对应着另外两条32位操作尺寸的指令,而且与上述指令完全不同。所以处理器译码的结果完全不是上述两条指令,且执行结果也完全不是你想要的。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2026-3-30 16:13 , Processed in 0.221571 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表