Перевод числа в двоично-десятичный код - Assembler

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

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

Есть задание: Сформировать массив из 10 однобайтных чисел, перевести их в двоично-десятичный код, сложить. Результат поместить в регистр BX. Конкретно не понятен тот факт, как перевести числа в двоично-десятичный код. Кто может помочь?

Решение задачи: «Перевод числа в двоично-десятичный код»

textual
Листинг программы
  1. .model small
  2. .386
  3.  
  4. .data
  5. var db 97,89,57,95,72,84,73,87,68,67
  6.  
  7. .stack
  8. db 255 dup(?)
  9.  
  10. .code
  11. start:
  12. mov ax,@data
  13. mov ds,ax
  14.  
  15. lea si,var
  16. mov cx,10
  17. sum:
  18. lodsb
  19.  
  20. aam
  21.  
  22. shl al,4
  23. shr ax,4
  24.  
  25. add al,bl
  26.  
  27. daa
  28.  
  29. adc ah,bh
  30.  
  31. mov bx,ax
  32. loop sum
  33.  
  34. mov ah,4Ch
  35. mov al,00h
  36. int 21h
  37. end start

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

  1. Установка модели памяти на small и использование сегментации 80386.
  2. Определение данных в сегменте данных (DB).
  3. Определение стека в сегменте данных (DB).
  4. Начало кода (START):
    • Перемещение указателя на сегмент данных в регистр AX.
    • Перемещение указателя на сегмент данных в регистр DS.
  5. Леа массива в регистр SI.
  6. Указатель на количество байтов в массиве (CX) равен 10.
  7. Цикл обработки каждого байта массива (LOOP SUM):
    • Загрузка байта из массива в регистр AL.
    • Сдвиг байта вправо на 4 бита (AAM).
    • Сдвиг результата вправо на 4 бита (SHR AX, 4).
    • Сложение двух полученных при сдвиге байтов (ADD AL, BL).
    • Увеличение результата на единицу (DAA).
    • Добавление полученного значения в регистр AH (ADC AH, BH).
    • Запись результата в регистр BX.
  8. Вывод сообщения об успешном выполнении программы (INT 21H).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы