将Java代码翻译成PseudoCode

时间:2012-11-28 05:37:42

标签: assembly 68000

如何使用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:

1 个答案:

答案 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: