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