我真的需要一些帮助,我试着用vvm汇编语言编写一个程序,它将两个数字分开,例如将数字A除以数字B
答案 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