2
我想获得一些帮助这个表达式转换成4种方法的命令:转换式进通用寄存器操作模式
z=3*(x+2)-2*y
这里是我的尝试的方法:
通过堆栈:
push 2
push -1
mult
push y
mult
push x
push 2
add
push 3
mult
add
pop z
由累加器:
load y
mult -2
store temp
load x
add 2
mult 3
add temp
store z
寄存器内存:
add R1, x, 2
mult R1, R1, 3
mult R2, y, -2
add z, R1, R2
登记注册:
load R1, x
add R1, R1, 2
mult R1, R1, 3
load R2, y
mult R2, R2, -2
add R1, R1, R2
store z, R1
是它好吗?我可以使用负数(-2 ...)吗?
谢谢!
谢谢你,你是对的,我的意思写:“添加z,R1,R2”。另一个问题:你知道“sub”命令的顺序是什么吗?例如:push x push y sub会是什么操作? X-Y?或者y-x?在我的问题中,这四种方法之间的解释存在差异吗?再次感谢! – user9
我不可能知道这样一个“子”操作的顺序是什么,因为我与你相反,没有一个手册来说明所有这些操作是做什么的。在_by accumulator_版本中,当前的订单将是正确的,因为它将其结果留在订单中! (我已经添加了这个答案) – Fifoernik