我真的需要一些帮助,我正在尝试用 vvm 汇编语言编写一个程序,它将两个数字相除,例如将数字 A 除以数字 B
问问题
956 次
2 回答
1
由于vvm在硬件中没有除法指令,因此您将不得不“手动”执行此操作。它甚至没有右移或任何可以让您测试最后一位的布尔运算。
但是,向自身添加一个数字是左移,因此您可能仍然可以创建一个在 log(n) 时间内运行的算法,而不仅仅是重复减法。
于 2015-12-11T04:26:12.323 回答
0
对于那台非常小的机器,最简单的方法是反复从被除数中减去除数,直到结果变为负数:
此示例执行 12/4:
lda 90
brz 20
sub 91
sto 90
brp 10
jmp 20
*10
lda 92
add 93
sto 92
jmp 00
*20
lda 92
out
hlt
*90
dat 012
dat 004
dat 000
dat 001
于 2015-12-11T10:52:31.517 回答