在实模式和 32 位保护模式下,16 位寻址用于通过 ModR/M 字节来引用存储器。此寻址仅在使用旧前缀的 i386 指令中受支持,在 x86-64 指令中完全不受支持。
然而,ModR/M 字节也被 8 位特定操作码使用,这让我怀疑原始16 位 x86 指令集中是否存在 8 位寻址。尽管 8 位地址非常有限,但完全可以使用不同的操作码以与 16 位指令相同的方式对此类指令进行编码。
例如,代替
add (bx, si), ax
Run Code Online (Sandbox Code Playgroud)
你会有
add (bl, dh), al
Run Code Online (Sandbox Code Playgroud)
很难找到任何 i386 之前的文档,所以我一无所知。这曾经被支持过吗?