assembly - 68K 汇编中的模数

标签 assembly modulo 68000

我想知道是否有命令/方法可以在 Motorola 68000 组件中执行取模操作?

我想执行 d4 mod 1000 和 d3 mod 100。

当前我正在使用以下公式,但这需要几行,

if a mod n then a - (n * int(a/n))

我见过这个 d0 mod d1 的公式

CLR.L D2
MOVE.W D0,D2
DIVU D1,D2
SWAP D2

感谢您的回答。

最佳答案

DIVU 指令正是您所寻找的。当您执行DIVU时,目标的长字将除以源的字。就您而言,您写道:

DIVU D1, D2

因此,D2 除以 D1。在商中,返回两部分。 D2 的高位字将包含余数(模),而低位字则包含商。这就是为什么您通常会看到 SWAP d2。这会将余数移至低位字。

关于assembly - 68K 汇编中的模数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46738682/

相关文章:

assembly - x86 SIMD 指令汇编中的 16 字节对齐(无 C 内在函数)

c - ARM 汇编器: bx jump to nowhere

c++ - 模运算的属性

C 编程 - 使用溢出的无符号整数之和的模

sh - 在 sh 脚本中计算模数

assembly - 如何存储来自 Assembly 68K CCR 的进位位?

algorithm - 编辑我的 Easy68k(汇编)程序以减去而不是添加

windows - PE文件中没有.BSS

c - 汇编消息 : Error: attempt to move . org 向后

assembly - 尝试比较和计算大于、小于或等于某个值的数组元素