【发布时间】:2019-09-03 14:08:38
【问题描述】:
我试图找出 x86 16 位寻址模式(MASM 程序集)中不存在比例因子的原因。而 32 位和 64 位寻址模式具有比例因子。这背后是否有实际原因或不需要它?如果您能解释一下,我将不胜感激。
可以组合不同组件以创建有效地址的所有可能方式:
16 位和 32 位寻址模式的区别
【问题讨论】:
-
我认为这个解释不是严格的技术性的。 X86-16 ISA 是 40 年前为处理器设计的,其晶体管数量比现在的奔腾处理器少 100000 倍。当技术改进允许更丰富的指令集时,英特尔可能对设计 x86-32 比升级 x86-16 ISA 更感兴趣。
-
我知道您只能有 5 个标签,但放置“x86”标签可能比您选择的其他标签更好。
-
顺便说一句,您的图表是错误的。 32 位寻址模式永远不能使用 16 位位移,只能使用 0/8/32。也许这就是为什么它在你的第二个中用红色加粗? 32 位模式下的代码可以使用 16 位寻址模式,但这也限制了您使用 16 位寄存器(并且仅限于
BX|BP + SI|DI)
标签: assembly x86 x86-16 addressing-mode