2016-02-20 65 views
0
兩個數的

我的腳本獲取輸入減去從第一和輸出結果的第二個數字:從大值68K大會減法小值

CR   EQU  $0D 
LF   EQU  $0A 

START ORG $1000 

*---------- Code for output ---------* 

      LEA  MSG1,a1 
      MOVE.B #14,d0 
      TRAP #15 


*---------- Code for input ---------* 

    MOVE.B #4,d0 
      TRAP #15 

      move.b d1,d2 

*---------- Code for output ---------* 

      LEA  MSG2,a1 
      MOVE.B #14,d0 
      TRAP #15 


*---------- Code for input ---------* 

    MOVE.B #4,d0 
      TRAP #15 

      sub.b d2,d1 

      move #3,d0 
    trap #15 

*---------- Halt Simulator ---------* 

    MOVE.B #9,d0 
    TRAP #15 

* Stop execution 
    STOP #$2000 

MSG1   DC.B 'Enter a first number: ',0 
MSG2   DC.B 'Enter a second number: ',0 

    END START end of program with start address specified 

如果第一數量= 50

其次數= 100

結果是= 50

但如果第一數目= 100

和第二數量= 50

結果是206

爲什麼206?發生什麼事?什麼是256在此操作中的意義。

也是很不錯的資源,解釋這是以下鏈接:

http://mrjester.hapisan.com/04_MC68/Sect04Part02/Index.html

+1

二進制補碼的美女之一是符號和無符號的加法和減法都是同樣的事情。輸入是否被認爲是符號或無符號是嚴格旁觀者邏輯完全不認識,也沒有照顧的眼睛。 –

回答

1

讓我們在1個字節進行十六進制減法:
32H - 64H = 00H - 32H = CEH(補)與進位十進制
所以,你的觀察結果是預期的一個設置爲1
CEH十六進制= 206。