我需要帮助在vvm中编写一个可以分割两个数字的程序

时间:2015-12-11 03:52:25

标签: assembly vvm

我真的需要一些帮助,我试着用vvm汇编语言编写一个程序,它将两个数字分开,例如将数字A除以数字B

2 个答案:

答案 0 :(得分:1)

由于vvm在硬件中没有除法指令,因此您必须手动执行此操作"。它甚至没有右移或任何布尔运算可以让你测试最后一位。

但是,向自身添加一个数字是左移,所以你仍然可以制作一个在log(n)时间内运行的算法,而不仅仅是重复减法。

答案 1 :(得分: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