我在尝试用汇编语言做除法
我在网上找不到一个很好的例子来说明如何除以64位。
到目前为止,我有两个变量的两个值
input
input2在哪里读入
我可以很好地乘法,但我被困在除法上了
所以如果我不想除以这两个整数,我会这样做
mov rcx, [input]
mov rdi, [input2]
idiv rcx, rdi这会自动给sme一个错误,因为除法应该只有一个寄存器,所以我假设当使用idiv时,它会自动将一些寄存器除以您指定的寄存器,所以我尝试了
idiv rcx但是我得到了“浮点错误”
想法?
发布于 2012-01-13 10:42:32
快速浏览一下documentation,就会发现涉及64位数字的除法有两种可能:
IDIV /M32
有符号除EDX:EAX除以r/m32,结果存储在EAX←商,EDX←余数中。
IDIV r/m64
有符号除RDX:RAX除以r/m64,结果存储在RAX←商,RDX←余数中。
这将是一个整数除法。您的问题被标记为浮点-如果您想要浮点除法,您将需要FDIV指令的变体之一。
https://stackoverflow.com/questions/8845191
复制相似问题