我必须用MARIE汇编语言实现这个伪代码
Input a number and store it in X;
Input a number and store it in Y;
while X < 10 do
X = X + 1;
Output the value of X;
endwhile;
Output the value of Y*2;
到目前为止,我已经写了这个:
Input
Store X
Input
Store Y
Loop, Load X
Subt TEN
Skipcond 400
Jump Endloop
Load X
Add ONE
Store X
Output
(然后我不知道如何将Y乘以2(
X, Dec 0
Y, Dec 0
ONE. Dec 1
TEN, Dec 10
我是否使用了正确的skipcond inetstruction?
Skipcond
单独使用是非常有限的。首先,它只能跳过一条指令,其次,它只能测试必要的6个条件中的3个。CCD_ 2可以跳过<并且>,但不能跳过<=<gt;,或者>=。(这些都是有符号的条件,也没有无符号的测试,但那是另一回事。(
如果你可以在一条指令中做一些有用的事情,那么SkipCond
可以提供以下帮助。
首先,我们应该注意,C中的if-then在汇编中需要相反的条件,因为在C中,我们说的是何时运行then部分,但在汇编中,我们指的是何时不运行那一条指令(即何时跳过指令(。所以,如果你能在一条指令中做一些有用的事情,你可以写一个if-then,测试>=<gt<=,而不是其他条件。对于这些内容,请继续阅读,了解如何将SkipCond
与Jumps相结合。
cond | 在 |
---|---|
Skipcond 000 |
AC<0 |
Skipcond 400 |
|
Skipcond 800 ;0 |