Ввести два любых числа с клавиатуры и вывести их сумму - Assembler

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

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

Компилятор Dos, приложение tasm 1.4

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

textual
Листинг программы
data segment
        a       db      2
        b       db      3
    y   db  ?
        Message db      'y=', '$'
data ends
code segment
start:  
assume cs:code, ds:data
        mov     ax,    data
        mov     ds,     ax
        mov     al,     2
        add     al,     3
        mov     [y],    al
        ;вывод сообщения
        mov     ah,     09h
        lea     dx,     [Message]
        int     21h
        ;вывод результата
        ; - преобразование числа в символ
        mov     al,     [y]
        ; - вывод символа результата вычисления
mov ah,02h
mov dl,al
int 21h
        ;ожидание нажатия любой клавиши
        mov     ah,     08h
        int     21h
        or      al,     al
 
 mov     ah,     08h     ;то считать расширенный символ
int     21h             ;очистив тем самым буфер клавиатуры
;конец программы
mov     ax,     4C00h
int     21h

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

  1. Ввод двух чисел с клавиатуры: в коде нет прямой инструкции для ввода чисел, но предполагается, что числа уже введены и сохранены в переменных ax и bx (код не проверяет их наличие или корректность ввода).
  2. Вычисление суммы введенных чисел: в коде есть инструкция mov al, 2, которая сохраняет в al первое число. Затем следует инструкция add al, 3, которая складывает это число (в al) с 3. Результат сохраняется в переменной y.
  3. Вывод сообщения и результата: в коде есть инструкции mov ah, 09h и lea dx, [Message], которые выводят сообщение 'y='. Затем следует инструкция int 21h, которая выводит символ доллара ($). Далее есть инструкции mov ah, 02h и mov dl, al, которые выводят результат вычисления (в данном случае, 5).
  4. Ожидание нажатия любой клавиши: в коде есть инструкция mov ah, 08h, которая устанавливает регистр ah в состояние, необходимое для ввода символа. Затем следует инструкция int 21h, которая ожидает нажатия клавиши.
  5. Очистка буфера клавиатуры: в коде есть инструкция mov ah, 08h, которая устанавливает регистр ah в состояние, необходимое для ввода символа. Затем следует инструкция int 21h, которая очищает буфер клавиатуры.
  6. Конец программы: в коде есть инструкция mov ax, 4C00h, которая устанавливает регистры ax и bx в значения, необходимые для завершения программы. Затем следует инструкция int 21h, которая завершает программу.

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


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

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

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