-2

我如何使用摩托罗拉 68000 将下面的 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:
4

1 回答 1

0

没有标准的伪代码格式。这是非常非正式的。重点是清楚地显示代码的逻辑结构,而不会陷入语法困境。

如果您被告知要使用伪代码进行汇编,我会假设您希望将 Java 代码大致分解为 68k 汇编中的样子。这似乎是您从这里开始的,但您犯了一些错误。

首先,你的意思是y >= 100

你的前两个 if 应该goto ELSE IF,不是END IF

没有理由goto IF。你应该只去过一次。根据 java 代码,不应该多次检查条件。您goto IF可能应该是 a goto DONE,因为它仅在第一个条件为真时执行,这意味着不会评估其他条件。

else 条件需要一个标签。这是你应该去的if x >= y

您不想像使用goto 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:
于 2012-11-28T06:35:13.940 回答