如何在Intel-8080汇编中编写软件除法功能?

时间:2019-06-23 11:45:42

标签: assembly intel-8080

对于一个作业,我必须为Intel-8080芯片组编写一个汇编程序,该程序将两个整数(0 <= n <= 250)相除。除法的其余部分无关紧要,只有整数除法很重要。

作为参考,我们给了一个程序,它可以将两个整数相乘。

我知道执行整数除法的基本算法。但是,我正在努力用汇编代码来表达它。算法如下:

Say we want to calculate 10 DIV 3: Let m=10 and n=3.
Let i = 0
While m>n { m = m-n; i++}

m中的值将是整数除法的结果。

As stated above, this is the asm function to multiply two values.

; init
mvi l,100
mvi a,0
mov m,a

; input factor1
in  0
mvi l,101
mov m,a

; input factor2
in  0
mvi l,102
mov m,a

; call multiply function
call mult
out 0
hlt

; multiply
mult: mvi l,102
mov a,m
cpi 0
jz end
dcr a
mov m,a
mvi l,100
mov a,m
mvi l,101
add m
mvi l,100
mov m,a
jmp mult
end:
mvi l,100
mov a,
ret

0 个答案:

没有答案