Сумма 4 значных чисел - Assembler

Узнай цену своей работы

Формулировка задачи:

Сложить четырехзначные числа, регистр ax, учесть carry flag, как работает daa (корректирует только al), тип данных должен быть dw
C dw 9991h
D dw 0009h
E dw 0h
mov ax, [C]
mov bx, [D]
;add ax, bx
adc ax, bx
AAA
mov cx, ax
Коррекция работает только на последних байтах. Помогите откорректировать все 4. Чтобы писал не 9A00, а 0000

Решение задачи: «Сумма 4 значных чисел»

textual
Листинг программы
        mov     al,     byte ptr [c]
        add     al,     byte ptr [d]
        aaa
        mov     byte ptr [e], al
 
        mov     al,     byte ptr [c+1]
        adc     al,     byte ptr [d+1]
        aaa
        mov     byte ptr [e+1], al

Объяснение кода листинга программы

  1. Переменная c содержит первое число (в регистре al).
  2. Переменная d содержит второе число (в регистре al).
  3. Переменная e содержит сумму двух предыдущих чисел (в регистре al).
  4. Переменная c+1 содержит третье число (в регистре al).
  5. Переменная d+1 содержит четвертое число (в регистре al).
  6. Переменная e+1 содержит сумму двух предыдущих чисел (в регистре al).

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы