1

对于这个问题,我不确定我是否做得正确(没有提供解决方案):考虑程序部分:

 X = 3
 If(X > 0) { Y = X }
 Stop

使用 MARIE 的指令集编写该程序段的助记汇编代码。

我想出了这个:

Load Three
Store X
If, Load X
Subt Three
Skipcond 800
Jump Endif
Then, Load X
Store Y
Endif, Halt
X, DEC ?
Y, DEC ?
Three, DEC 3

这个解决方案可以接受吗?另外,就内存访问次数而言,会是 8 次(我认为 Halt 不是内存访问)吗?希望得到一些指导。

4

1 回答 1

1

很长一段时间后回到这个问题,我想我会分享答案:

  Load Three
    Store X
    If, Load X
    Skipcond 800
    Jump Endif
    Then, Load X
    Store Y
    Endif, Halt
    X, DEC ?
    Y, DEC ?
    Three, DEC 3
于 2015-12-31T20:17:02.010 回答