ASM 8086除法除法

问题描述 投票:2回答:3

我需要在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我的问题是我该如何...

assembly intel emu8086 microprocessors
3个回答
2
投票

给定another answer的方法是简单的蛮力循环,对于a的较大值可能需要一段时间。这是一个使用较大的块(像长除法问题一样工作)的版本,其专门编码为将带符号的数字除以6:


1
投票

您可以使用减法并计算达到零所需的次数,例如30/6 = 5和30-6-6-6-6-6 = 0,因此对于30,您必须5次减去6才能归零


0
投票

从小学

© www.soinside.com 2019 - 2024. All rights reserved.