Вывести на экран сумму двух введенных с клавиатуры двузначных чисел - Assembler

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

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

Вывести на экран сумму двух введенных с клавиатуры двузначных чисел (вводить посимвольно функцией 01 прерывания 21h, значение вводить так, чтобы сумма была меньше 100). для решения задачи применить команды десятичной арифметики

Решение задачи: «Вывести на экран сумму двух введенных с клавиатуры двузначных чисел»

textual
Листинг программы
  1. data segment ;описание сегмента данных
  2. data ends ;конец сегмента данных
  3.  
  4. code segment ;начало сегмента кода
  5. start: ;метка start - начало нашей программы
  6.     assume cs:code, ds: data ;директива компилятора
  7.     mov ax, data ;настройка сегмента данных
  8.     mov ds, ax ;
  9. ;--------------Очищаем экран--------------
  10.     mov ah, 0fh ;получить параметры видеорежима
  11.     int 10h ;
  12.     mov ah, 00 ;установить параметры видеорежима
  13.     int 10h ;
  14. ;--------------Вводим первый символ--------------
  15.     mov ah, 01 ;ввод с клавиатуры и чтение с клавиатуры
  16.     int 21h ;ввод с клавиатуры и чтение с клавиатуры
  17.     sub al, 30h ;переводим символ в число
  18.     mov bh, al ;запоминаем первую цифру первого числа в bh
  19. ;--------------Вводим второй символ--------------
  20.     mov ah, 01 ;ввод с клавиатуры и чтение с клавиатуры
  21.     int 21h ;ввод с клавиатуры и чтение с клавиатуры
  22.     sub al, 30h ;переводим символ в число
  23.     mov ah, bh
  24.     mov bx, ax ;запоминаем первое число в bx
  25. ;--------------Вводим третий символ--------------
  26.     mov ah, 01 ;ввод с клавиатуры и чтение с клавиатуры
  27.     int 21h ;ввод с клавиатуры и чтение с клавиатуры
  28.     sub al, 30h ;переводим символ в число
  29.     mov ch, al ;запоминаем первую цифру первого числа в ch
  30. ;--------------Вводим четвёртый символ--------------
  31.     mov ah, 01 ;ввод с клавиатуры и чтение с клавиатуры
  32.     int 21h ;ввод с клавиатуры и чтение с клавиатуры
  33.     sub al, 30h ;переводим символ в число
  34.     mov ah, ch
  35.  
  36.     add ax, bx ; складываем два неупакованных BCD числа
  37.     aaa
  38.     mov bx, ax ; сохраняем результат в bx
  39. ;--------------Выводим символ на экран--------------
  40.     mov al, bh
  41.     add al, 30h ;перевести число в символ
  42.     mov ah, 02 ;номер функции
  43.     mov dl, al ;поместили сивол из al в dl
  44.     int 21h ;вызов прерываний
  45. ;--------------Выводим символ на экран--------------
  46.     mov al, bl
  47.     add al, 30h ;перевести число в символ
  48.     mov ah, 02 ;номер функции
  49.     mov dl, al ;поместили сивол из al в dl
  50.     int 21h ;вызов прерываний
  51.  
  52.     mov ax, 4c00h ;функция завершения программы
  53.     int 21h ;завершаем программу
  54. code ends ;конец сегмента кода
  55. end start ;конец программы с точкой входа start

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

  1. Очищаем экран;
  2. Вводим первый символ;
  3. Вводим второй символ;
  4. Вводим третий символ;
  5. Вводим четвёртый символ;
  6. Складываем два неупакованных BCD числа и сохраняем результат в bx;
  7. Выводим первый символ на экран;
  8. Выводим второй символ на экран;
  9. Завершаем программу.

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


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

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

13   голосов , оценка 4.154 из 5

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

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

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