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

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

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

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

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

textual
Листинг программы
data segment ;описание сегмента данных
data ends ;конец сегмента данных
 
code segment ;начало сегмента кода
start: ;метка start - начало нашей программы
    assume cs:code, ds: data ;директива компилятора
    mov ax, data ;настройка сегмента данных
    mov ds, ax ;
;--------------Очищаем экран--------------
    mov ah, 0fh ;получить параметры видеорежима
    int 10h ;
    mov ah, 00 ;установить параметры видеорежима
    int 10h ;
;--------------Вводим первый символ--------------
    mov ah, 01 ;ввод с клавиатуры и чтение с клавиатуры
    int 21h ;ввод с клавиатуры и чтение с клавиатуры
    sub al, 30h ;переводим символ в число
    mov bh, al ;запоминаем первую цифру первого числа в bh
;--------------Вводим второй символ--------------
    mov ah, 01 ;ввод с клавиатуры и чтение с клавиатуры
    int 21h ;ввод с клавиатуры и чтение с клавиатуры
    sub al, 30h ;переводим символ в число
    mov ah, bh
    mov bx, ax ;запоминаем первое число в bx
;--------------Вводим третий символ--------------
    mov ah, 01 ;ввод с клавиатуры и чтение с клавиатуры
    int 21h ;ввод с клавиатуры и чтение с клавиатуры
    sub al, 30h ;переводим символ в число
    mov ch, al ;запоминаем первую цифру первого числа в ch
;--------------Вводим четвёртый символ--------------
    mov ah, 01 ;ввод с клавиатуры и чтение с клавиатуры
    int 21h ;ввод с клавиатуры и чтение с клавиатуры
    sub al, 30h ;переводим символ в число
    mov ah, ch
 
    add ax, bx ; складываем два неупакованных BCD числа
    aaa
    mov bx, ax ; сохраняем результат в bx
;--------------Выводим символ на экран--------------
    mov al, bh
    add al, 30h ;перевести число в символ
    mov ah, 02 ;номер функции
    mov dl, al ;поместили сивол из al в dl
    int 21h ;вызов прерываний
;--------------Выводим символ на экран--------------
    mov al, bl
    add al, 30h ;перевести число в символ
    mov ah, 02 ;номер функции
    mov dl, al ;поместили сивол из al в dl
    int 21h ;вызов прерываний
 
    mov ax, 4c00h ;функция завершения программы
    int 21h ;завершаем программу
code ends ;конец сегмента кода
end start ;конец программы с точкой входа start

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

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

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


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

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

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