-->

NASM x86的16位寻址模式(NASM x86 16-bit addressing modes)

2019-06-18 05:36发布

我有麻烦指向的地址和我的情况下字节变量写入大小。 这使我的错误“错误:无效的有效地址”:

mov byte[AX], byte 0x0

一些试错后,我测试相同,但与EAX。 这将编译就好了:

mov byte[EAX], byte 0x0

我缺少的是在这里吗?

Answer 1:

[AX]是一个无效的存储器操作数说明。

在有效的16位的有 :

[constant]  
[BX]  
[SI]  
[DI]  
[BX+constant]  
[BP+constant]  
[SI+constant]  
[DI+constant]  
[BX+SI]  
[BX+DI]  
[BP+SI]  
[BP+DI]  
[BX+SI+constant]  
[BX+DI+constant]  
[BP+SI+constant]  
[BP+DI+constant]  

[BP]在形式上是无效的,但许多组装会悄悄地把它转换成[BP + 0]。

参见存储器操作数编码和MODR / M和SIB字节CPU手册。



文章来源: NASM x86 16-bit addressing modes