我正在尝试使用masm在程序集中循环嵌套。我得到了"错误A2070:无效的指令操作数"在第15行,即运行以下代码时内部while循环的endw指令。
INCLUDE Irvine32.inc
.data
i byte 1
j byte 2
.code
main PROC
xor eax,eax
.while i<5
mov j, 2
.while j<i
mov al, j
call writeDec
call crlf
inc j
.endw
inc i
.endw
exit
main ENDP
END main
我无法找到原因。任何人都可以帮助我吗?
答案 0 :(得分:1)
错误在于:
.while j<i
您无法直接比较两个内存内容。可以将存储器内容与寄存器进行比较,例如:
mov dl, i
.while j<dl
顺便说一句:不要相信外星人&#34;功能(欧文WriteDec
和Crlf
)。当寄存器无意中更改其内容时,这可能是由于这样的功能。