指令"mov ax,[ax]"不会编译

Yar*_*nik 0 assembly

我使用名为"emu8086"的x8086模拟器.我写了简单的代码,当我运行它时,它给了我一个错误.我无法弄清楚问题是什么. http://prntscr.com/8bpivm

Mic*_*ael 9

[AX]不是有效的有效地址.以下是有效的16位寻址表(源代码)列表:

[BX + val]
[SI + val]
[DI + val]
[BP + val]
[BX + SI + val]
[BX + DI + val]
[BP + SI + val]
[BP + DI + val]
[address]
Run Code Online (Sandbox Code Playgroud)

+ val部分表示8位或16位位移,可以省略,因此您可以编写[BX]而不是[BX + 0].

您也可以在英特尔软件开发人员手册第2A卷表2-1中找到这些内容.带ModR/M字节的16位寻址表.