你如何在汇编中划分一个寄存器?
How do you divide a register in assembly?
请原谅我提出一个愚蠢的语法问题,但我有两个变量(squares 和 horizCharsPerSquare),我正在尝试将 ecx 设置为 squares/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
无论如何,我都会收到错误消息?我得到了 "constant is expected" 的所有构建错误。对我应该如何做有什么建议吗?
由于 squares 和 horizCharsPerSquare 都是变量,您通常会在对它们进行算术运算之前将它们移动到寄存器中。 这里只有第一个变量需要移动到寄存器,因为div
指令确实允许内存操作数:
mov eax, squares
xor edx, edx
div horizCharsPerSquare ;Divide EDX:EAX by the dword variable
mov ecx, eax ;Put quotient in ECX
请原谅我提出一个愚蠢的语法问题,但我有两个变量(squares 和 horizCharsPerSquare),我正在尝试将 ecx 设置为 squares/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
无论如何,我都会收到错误消息?我得到了 "constant is expected" 的所有构建错误。对我应该如何做有什么建议吗?
由于 squares 和 horizCharsPerSquare 都是变量,您通常会在对它们进行算术运算之前将它们移动到寄存器中。 这里只有第一个变量需要移动到寄存器,因为div
指令确实允许内存操作数:
mov eax, squares
xor edx, edx
div horizCharsPerSquare ;Divide EDX:EAX by the dword variable
mov ecx, eax ;Put quotient in ECX