8086 汇编 SHR 指令除以 3 问题

问题描述

我知道 shr 除法的工作原理,但它只除偶数。我想把数字除以3,这个问题的汇编8086代码是什么?谢谢。

解决方法

除以 3 与乘以 1/3 相同。二进制的 1/3 是 0.010101...

所以在伪代码中:

sum:=0
tmp:=IN
while (tmp>0) {
  shr tmp,2
  sum += tmp
}
OUT:=sum