请原谅我一个愚蠢的语法问题,但我有两个变量(square和horizCharsPerSquare),我试图将ecx设置为等于square / horizCharsPerSquare。我试过了:
mov ecx, squares/horizCharsPerSquare
和
mov ecx squares
div horizCharsPerSquare
和
mov ecx, squares
shr ecx, horizCharsPerSquare ;//(I know there are other issues with this, I was just giving it a shot
无论如何,我都会收到错误消息?我得到的构建错误是“预期不变”#34;为了一切。关于我应该如何做的任何建议?
答案 0 :(得分:2)
由于 square 和 horizCharsPerSquare 都是变量,因此通常会在对它们进行算术运算之前将它们移动到寄存器中。 这里只需要将第一个变量移动到寄存器,因为div
指令允许使用内存操作数:
mov eax, squares
xor edx, edx
div horizCharsPerSquare ;Divide EDX:EAX by the dword variable
mov ecx, eax ;Put quotient in ECX