如何在不使用DIV指令而使用shift和add方法的情况下将汇编中的两个数字相除?
我用乘法做到了这一点,下面是我的代码:
mov bl, 56H ;For example
mov dl, 79H
;start
mov bh, 00H
mov dh, 00H
xor di, di
mov cx, 08H
L1:
shr dx, 1 ;shifting the multiplier
jnc nxt
add di, bx ;adding the multiplicand to the result register di
nxt:
shl bx, 1 ;shifting the multiplicand
loop L1第二个问题:我的老师告诉我们有一个叫做MOVZE的指令来做我在第4行和第5行做的事情,但它不起作用?我使用emu8086仿真器。
发布于 2013-11-24 03:32:44
不能使用移位和加法将一个数字除以另一个数字。不知道是谁告诉你可以这么做的。向右移动一位相当于预测二位。但是你不能通过移位来划分为随机数。
https://stackoverflow.com/questions/20165805
复制相似问题