首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nasm x86-64位除法

nasm x86-64位除法
EN

Stack Overflow用户
提问于 2012-01-13 10:33:08
回答 1查看 4.1K关注 0票数 0

我在尝试用汇编语言做除法

我在网上找不到一个很好的例子来说明如何除以64位。

到目前为止,我有两个变量的两个值

代码语言:javascript
复制
input
input2

在哪里读入

我可以很好地乘法,但我被困在除法上了

所以如果我不想除以这两个整数,我会这样做

代码语言:javascript
复制
mov rcx, [input]

mov rdi, [input2]

idiv rcx, rdi

这会自动给sme一个错误,因为除法应该只有一个寄存器,所以我假设当使用idiv时,它会自动将一些寄存器除以您指定的寄存器,所以我尝试了

代码语言:javascript
复制
idiv rcx

但是我得到了“浮点错误”

想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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指令的变体之一。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8845191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档