MARIE中的SKIPCOND用于循环或条件语句



我必须用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

最新更新