Вывести на экран сумму двух введенных с клавиатуры цифр (результат заведомо меньше 10) - Assembler

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

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

Имеется два числа (цифры) a и b. Вычислить y = 2a - b + 1. Компилятор Dos, тип приложения tasm 1.4

Решение задачи: «Вывести на экран сумму двух введенных с клавиатуры цифр (результат заведомо меньше 10)»

textual
Листинг программы
.model small
 
.stack 100h
 
.data
        a       db      3
        b       db      4
        y       db      ?
        Message db      'y=', '$'
.code
main    proc
        mov     ax,     @data
        mov     ds,     ax
 
        mov     al,     [a]
        add     al,     [a]
        sub     al,     [b]
        add     al,     1
        mov     [y],    al
        ;вывод сообщения
        mov     ah,     09h
        lea     dx,     [Message]
        int     21h
        ;вывод результата
        ; - преобразование числа в символ
        mov     al,     [y]
        add     al,     '0'
        ; - вывод символа результата вычисления
        mov     ah,     02h
        mov     dl,     al
        int     21h
        ;ожидание нажатия любой клавиши
        mov     ah,     08h
        int     21h
        or      al,     al
        jnz     @@Skip          ;если нажата функциональная клавиша,
        mov     ah,     08h     ;то считать расширенный символ
        int     21h             ;очистив тем самым буфер клавиатуры
@@Skip:
        ;конец программы
        mov     ax,     4C00h
        int     21h
main    endp
 
end     main

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

  1. Объявление переменных: — a, b — для хранения введенных с клавиатуры цифр — y — для хранения результата вычисления — Message — для хранения строки сообщения
  2. Код программы: — Перемещение указателя сегмента данных в регистр AX — Начало цикла обработки пользовательского ввода: — Считывание двух цифр с клавиатуры и сохранение их в переменные a и b — Вычисление суммы цифр в переменной a — Вывод сообщения на экран — Вывод результата вычисления (суммы) в виде символа — Ожидание нажатия любой клавиши — Если нажата функциональная клавиша, то считывание расширенного символа и очистка буфера клавиатуры — Конец цикла обработки пользовательского ввода — Перемещение указателя сегмента кода в регистр AX — Вывод на экран сообщения об ошибке и выход из программы
  3. Значения переменных a и b равны 3 и 4 соответственно.
  4. Результат вычисления (сумма) сохраняется в переменной y.
  5. Строка сообщения для вывода на экран содержит текст 'y=' и символ доллара.
  6. Код программы написан на языке Assembler.

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

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