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