assembly - DCPU-16 DIV 指令

标签 assembly dcpu-16

我在看 specification对于 DCPU-16,我无法理解 DIV 指令溢出值的用途:

DIV a, b - sets a to a/b, sets O to ((a<<16)/b)&0xffff.



任何人都可以在这里解释 O 的语义,它有什么用?

最佳答案

看起来 O 给出了结果的小数部分(作为定点数)。例如,考虑 5/2:

a = 5 / 2 = 2 (integer part)
O = ((5 << 16) / 2) & 0xffff = (327680 / 2) & 0xffff = 32768

如果您将 O 视为 16 位二进制小数位,则这表示结果的 0.5 小数部分。

另一种看待它的方式是以位为单位的二进制结果是:
aaaaaaaaaaaaaaaa.OOOOOOOOOOOOOOOO

5/2 是
0000000000000010.1000000000000000

通过检查可以看出,该结果是 5(101 二进制)右移一位到小数位。

关于assembly - DCPU-16 DIV 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10112671/

相关文章:

assembly - 优化 DCPU-16 FizzBu​​zz

更改为 "Unreal"模式,处理器崩溃

c - 不同内存寻址方案的 C 代码的可移植性

multitasking - 中断器DCPU-16上是否可以抢先进行多任务处理?

performance - 条件指令(cmov)和跳转指令之间的区别

dcpu-16 - 你能写信给[PC]吗?

assembly - AT&T 语法汇编浮点运算引用

assembly - ARM 在 EOR/XOR 和 AND 上进位标志

assembly - 我尝试打印号码时出错