2017-04-23 98 views
0

我想在Easy68K中創建一個能夠測試用戶輸入的兩個數字是否相等的程序。我大致知道如何從用戶那裏獲得輸入,並將其加載到數據寄存器中,並且我認爲我需要使用while循環來測試這兩個數字是否相等。使用Easy68K測試兩個數字是否相等

我並不是要求人們爲我編寫程序,我只是非常需要一些建議。

這是我到目前爲止的代碼:

*----------------------------------------------------------- 
* Title  : Number Comparison 
* Written by : Robert Dudley 
* Date  : 23/04/2017 
* Description: Compares two numbers and determines if they are equal 
*----------------------------------------------------------- 
    ORG $1000 
START:          ; first instruction of program 

* Put program code here 

    LEA  enterFirst,A1    ; load message into adreg A1 
    MOVE.B  #14,D0 
    TRAP  #15 
    MOVE.B  #4,D0      ; read number from keyboard into D1.L 
    TRAP  #15 

    LEA  enterSecond,A1 
    MOVE.B  #14,D0 
    TRAP  #15 
    MOVE.B  #4,D0 
    TRAP  #15 

    SIMHALT        ; halt simulator 

* Put variables and constants here 

enterFirst  DC.B 'Enter first number: ',0 
enterSecond  DC.B 'Enter second number: ',0 

       END START    ; last line of source 

注:此外,如何從D1.L輸入移動到另一個寄存器?

+0

最後一個問題:讀你的句子並把它翻譯成助記符:'MOVE.L D1,<另一個寄存器> – tofro

回答

0

鍵盤輸入程序很可能將輸入的數字留在某個寄存器中,我們假設它是D1。輸入第二個值會破壞第一個值,如果沒有保存在其他地方。 (我想這就是爲什麼你問到如何從一個寄存器移動值,其它)

插入第二TRAP 15後以下行:

 MOVE.L d1,d7 

確保沒有任何陷阱改變這個寄存器的值 - 否則你會失去它。

在第二次鍵盤輸入後,您將在d1中獲得第二個數字,第一個數字(希望)仍然在d7中。 C o MP是兩個寄存器,並且使用一個條件分支到你可能編寫的任何[非]相等輸出例程

+0

謝謝!我現在面臨的問題是保存第二個值(D1.L需要再次用於顯示結果),並實際顯示D7。否則至少它現在存儲第一個輸入的值。 –

+0

沒關係!我一直在努力研究這個問題,但我已經有點腦子死了,但我現在已經掌握了基礎知識。非常感謝你的幫助! –

相關問題