Написать программу, которая завершается при вводе слова «Stop». - Assembler
Формулировка задачи:
Написать программу, которая завершается при вводе слова «Stop». Ввод выполняется посимвольно.
Помогите, пожалуйста, с задачей, а то asm я вообще не понимаю, буду безгранично благодарен.
Решение задачи: «Написать программу, которая завершается при вводе слова «Stop».»
textual
Листинг программы
cs:0100 99 cwd cs:0101 B401 mov ah,01 cs:0103 CD21 int 21 cs:0105 66C1E208 shl edx,08 cs:0109 0C20 or al,20 cs:010B 88C2 mov dl,al cs:010D->6681FA73746F70 cmp edx,706F7473 ; pots cs:0114 75EB jne 0101 cs:0116 CD20 int 20
Объяснение кода листинга программы
cwd
- Это команда расширения знака. Она знаковое расширение флаги из регистра AX заменяет флагами в регистре DX.mov ah,01
- Эта команда перемещает значение 01 в регистр AH, который затем используется как номер функции для прерывания 21H.int 21
- Эта команда вызывает прерывание 21H, данное прерывание обрабатывает ввод с клавиатуры.shl edx,08
- Сдвигает содержимое регистра EDX на 8 бит (один байт) влево.or al,20
- Выполняет логическую операцию ИЛИ между AL и 20 (0010 0000 в двоичной системе), изменяя значение AL.mov dl,al
- Перемещает значение AL в регистр DL.cmp edx,706F7473
- Сравнивает значение в регистре EDX (которое было сдвинуто на 8 бит ранее и изменено операцией ИЛИ) с 706F7473 (это ASCII представление словаStop
).jne 0101
- Если предыдущая операция cmp показала, что значения не равны, происходит переход к адресу 0101.int 20
- Вызывает прерывание 20H, которое завершает работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д