我想了解MARIE汇编语言.我不太明白skipcond做某些事情<,或者>,或者,或者乘法或分裂.
我正在采取这个简单的程序:
x = 1
while x < 10 do
x = x +1
endwhile;
Run Code Online (Sandbox Code Playgroud)
我不明白的是如何使用某些跳过条件:
Skipcond 800 if AC > 0,
Skipcond 400 if AC = 0,
Skipcond 000 if AC < 0
Run Code Online (Sandbox Code Playgroud)
现在,我知道我会从10减去x并使用跳秒进行测试.
我不确定是哪一个以及为什么.我想如果我知道它们真的有用,也许它会更容易理解.为什么用它来比较为零?
这就是我所拥有的:
100 load one
101 store x
102 subt ten
103 skipcond400 if x-10 = 0? // or skpcond000 x -10 < 0??
Run Code Online (Sandbox Code Playgroud)
while x < 10 do
x = x + 1
Run Code Online (Sandbox Code Playgroud)
一旦 x 等于 10,就会跳出循环。如果从 x 中减去 10,您将得到一个负值,直到 x 等于 10(并且该值为 0)。所以使用skpcond000是错误的,因为它会很快跳出来。所以skpcond400是正确的。
如果您更改 C 代码,使其更接近汇编代码,也许会更容易理解:
Original: while (x < 10) do
Subtract 10: while ((x - 10) < 0) do
Use != instead of <: while ((x - 10) != 0) do
Run Code Online (Sandbox Code Playgroud)
另请注意,您必须在条件x 之后while增加才能重现与循环相同的行为。