2016-02-20 29 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。