gpt4 book ai didi

assembly - 除以奇数的算术移位 - 微程序控制

转载 作者:行者123 更新时间:2023-12-03 06:22:34 25 4
gpt4 key购买 nike

我正在尝试编写以下指令:

AC <-- AC/3。

我知道我可以使用算术右移来执行除以 2 的操作,但是如何仅使用微程序控制(微指令)中可能的指令来执行除以奇数的操作。

谢谢

最佳答案

另一个答案建议除以二,乘以 2/3。

如果您可以乘以 2/3,那么您也可以轻松地乘以 1/3(1/3 = .0101010101.. 以二进制表示)并跳过除以 2。

要乘以 1/3,您可以将被除数右移两个位置(相当于乘以 0.01!)并添加到累加器中。重复乘法(呃,右移两次,乘以 .0001、.000001,...)并根据需要添加任意多次,以处理您期望被除数具有的最大位数。小心“从末端掉下来”的股息位;您要么需要一个 double 移位器/累加器,要么需要在开始之前将被除数按与位数相对应的 2 的正幂进行缩放,以避免精度损失(假设您有足够的备用位)。

除以其他常数可以通过乘以构成其倒数的位来完成。它不是那么整洁,但想法是相同的。您可以找出该方法的一个变体,该变体在除以常数后计算模(余数)。这两个都是编译器生成的代码中的常见技巧。

关于assembly - 除以奇数的算术移位 - 微程序控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com