2012-11-28 79 views
-2

如何可能我在彙編語言使用摩托羅拉的68000翻譯下面的Java代碼:翻譯的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

沒有標準的僞代碼格式。這是非常非正式的。關鍵是要清楚地顯示代碼的邏輯結構,而不會陷入語法障礙。

如果您被告知僞代碼進行彙編,我會假設您想要將java代碼分解爲大致看起來像68k大會的代碼。這似乎是你在這裏開始的,但你犯了一些錯誤。您的意思是y >= 100

您的前兩個if應該是goto ELSE IF,而不是END IF

沒有理由goto IF。你應該只在那裏一次。根據java代碼,條件不應該被檢查多次。您的goto IF應該可能是goto DONE,因爲只有在第一個條件爲真時纔會執行,這意味着不會評估其他條件。

您需要爲else條件添加標籤。這是你應該去if x >= y

您不想回到ELSE IF,因爲您使用的是goto ELSE IF。您可能意思是goto DONE

您的最終goto DONE是多餘的。如果你遺漏了它,無論如何它都會到DONE,因爲這是下一條指令。

這大概應該是什麼樣子(請注意,如果標籤不會被引用它只是在那裏看起來。):

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: