Ввести символы 'I' или 'P', вывести результат - Assembler

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

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

Программа предлагает ввести символы 'I' или 'P'. При введении символа 'I' - выводит на экран ваше имя. При введении символа 'P' - выводит вашу фамилию. После этого программа завершается. В случае введения другого символа - выводит сообщение об ошибке и предлагает ввести символ еще раз.

Решение задачи: «Ввести символы 'I' или 'P', вывести результат»

textual
Листинг программы
.model small
.386
 
.data
n db 'Ivan$'
f db 'Ivanov$'
e db 'Error!$'
 
.code  
start:  
mov ax,@data
mov ds,ax
 
input:
mov ah,08h
int 21h
 
cmp al,'I'
je pName
 
cmp al,'P'
je pFam
 
mov ah,09h
lea dx,e
int 21h
 
jmp input
 
pName:
mov ah,09h
lea dx,n
int 21h
 
jmp exit
 
pFam:
mov ah,09h
lea dx,f
int 21h
 
exit:
mov ah,4Ch
mov al,00h
int 21h
end start

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

  1. В первой строке кода указывается модель сегментной памяти, в данном случае — small, что означает 16-битный режим.
  2. Вторая строка кода — это определение сегмента, в котором будет располагаться код программы (cs), и сегмента данных (ds).
  3. Далее идёт объявление переменных: n, f, e. Значения переменных можно увидеть в кавычках после объявления.
  4. После объявления переменных начинается код программы.
  5. Первая команда в коде перемещает указатель на сегмент данных в регистр ds.
  6. Вторая команда в коде является циклом, который продолжается до тех пор, пока не будет введено 'I' или 'P'.
  7. Если введено 'I', то выполняется блок кода с комментарием pName, иначе выполняется блок кода с комментарием pFam.
  8. В блоке pName выводится на экран строка, которая была обозначена как n (Иван).
  9. В блоке pFam выводится на экран строка, которая была обозначена как f (Иванов).
  10. Если введено что-то другое, выводится сообщение об ошибке (строка e — Error!).
  11. Цикл продолжается до тех пор, пока не будет введено 'I' или 'P'.
  12. В конце программы выводится сообщение об успешном завершении работы программы (00h — Ok!).

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

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