在Visual Studio中,我写道:
mov eax, [edx][ebx][ecx][edi]
但是它组装得很好。
为什么它不是无效的有效地址?
最佳答案
在最新版本的MASM中,这似乎是一个错误。
以以下文件为例:
.586
_TEXT SEGMENT USE32
mov eax, [edx][ebx][ecx][edi]
_TEXT ENDS
END
使用MASM 6.11d,将生成以下错误:
t213a.asm(4) : error A2030: multiple index registers not allowed
使用MASM 8.00.50727.42或更高版本时,没有错误,并且该语句汇编为:
00000000: 8B 04 0F mov eax,dword ptr [edi+ecx]
因此,
[edx][ebx][ecx][edi]
不是有效的寻址模式。您正在使用的MASM版本中的错误是应该接受它,而应该将其拒绝为错误。关于assembly - 为什么Visual Studio会毫无提示地组装mov eax,[edx] [ebx] [ecx] [edi]?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33596266/