Вывести на экран сумму двух введенных с клавиатуры двузначных чисел - 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
Объяснение кода листинга программы
- Очищаем экран;
- Вводим первый символ;
- Вводим второй символ;
- Вводим третий символ;
- Вводим четвёртый символ;
- Складываем два неупакованных BCD числа и сохраняем результат в bx;
- Выводим первый символ на экран;
- Выводим второй символ на экран;
- Завершаем программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д