我需要在asm 8086中编写类似b = a / 6的程序,但没有DIV指令。我知道如何使用SAR,但是只有2,4,8,16 ...
mov ax,a
sar ax,1 ;//div a by 2
mov b,ax
我的问题是如何将其除以6?
我需要在asm 8086中编写类似b = a / 6的程序,但没有DIV指令。我知道如何使用SAR,但只有2,4,8,16 ... mov ax,a sar ax,1; // div a by 2 mov b,ax我的问题是我该如何...
给定another answer的方法是简单的蛮力循环,对于a
的较大值可能需要一段时间。这是一个使用较大的块(像长除法问题一样工作)的版本,其专门编码为将带符号的数字除以6:
您可以使用减法并计算达到零所需的次数,例如30/6 = 5和30-6-6-6-6-6 = 0,因此对于30,您必须5次减去6才能归零
从小学