I am trying nested while loop in assembly using masm. I am getting the "error A2070: invalid instruction operands" at line 15 i.e at the endw directive of internal while loop while running the following code.
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
I cant find the reason for this. Can anyone help me?
The error is here:
You cannot compare two memory contents directly. It is possible to compare a memory content with a register, e.g.:
BTW: Don't trust an "alien" function (Irvine's
WriteDec
andCrlf
). When a register unintentionally changes its contents, this can due to such a function.