如何使用Motorola 68000在汇编语言的 PseudoCode 中翻译下面的Java代码:
if(x > y && y < 100) {
x++;
y--;
} // end if
else if(x < y) {
x--;
y++;
} // end else if
else {
x=0;
y=0;
} // end else
我认为我可能在正确的轨道上不确定:
IF:
if(x <= y) goto end if
if(y <= 100) goto end if
x++;
y--;
goto IF
ELSE IF:
if(x >= y) goto end else if
x--;
y++;
goto ELSE IF
x = 0;
y = 0;
goto DONE
DONE:
答案 0 :(得分:0)
没有标准的伪代码格式。这非常非正式。重点是清楚地显示代码的逻辑结构,而不会陷入语法困境。
如果你被告知使用伪代码进行汇编,我会假设你想要将java代码细分为68k汇编中的内容。这似乎是你从这里开始的,但你犯了一些错误。
首先,您的意思是y >= 100
。
您的前两个ifs应该goto ELSE IF
,而不是END IF
。
没有理由goto IF
。你应该只在那里一次。根据java代码,不应该多次检查条件。您的goto IF
可能应该是goto DONE
,因为只有在第一个条件为真时才会执行,这意味着不会评估其他条件。
你需要一个else条件的标签。这就是你应该去if x >= y
。
您不希望像使用goto ELSE IF
一样回溯到ELSE IF。你可能想要goto DONE
。
您的最终goto DONE
是多余的。如果你把它遗漏了,无论如何它都会转到DONE
,因为这是下一条指令。
这大致应该是这样的(请注意,永远不会引用IF标签。它只适用于外观。):
IF:
if x <= y
goto ELSEIF
if y >= 100
goto ELSEIF
x++
y--
goto DONE
ELSEIF:
if x >= y
goto ELSE
x--
y++
goto DONE
ELSE:
x = 0
y = 0
DONE: