Как мне получить сумму двух больших чисел? - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь сложить два числа (скажем, первое число = 200, а второе = 100). Когда я добавляю их в AL, я получаю 2 C в шестнадцатеричном формате вместо 300. Это из-за переполнения? и если это причина этого, как мне получить результат? Я читал несколько других сообщений, но большинство из них имеют дело с меньшими числами или используют xor, которого я действительно не понимал, почему он вообще используется. Ответы приветствуются.

Вот мой код:

.model small          
.stack 100
.data

    No1 DB 200          ;First number 
    No2 DB 100

    Sum DW ?   

.code  
START: 

    MOV ax, @data
    MOV ds, ax

    MOV ax, 0
    MOV al, No1
    ADD al, No2 

end start

1 Ответ

1 голос
/ 06 мая 2020

Вот рабочее решение для emu8086:

.MODEL small          
.STACK 100

.DATA
    No1 DB 200
    No2 DB 100
    Sum DW ?   

.CODE  
   start PROC
      MOV ax, @data
      MOV ds, ax

      XOR ah, ah
      MOV al, No1 
      XOR bh, bh
      MOV bl, No2
      ADD ax, bx

      MOV Sum, ax
   start ENDP
...