Написать программу, которая завершается при вводе слова «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

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

  1. cwd - Это команда расширения знака. Она знаковое расширение флаги из регистра AX заменяет флагами в регистре DX.
  2. mov ah,01 - Эта команда перемещает значение 01 в регистр AH, который затем используется как номер функции для прерывания 21H.
  3. int 21 - Эта команда вызывает прерывание 21H, данное прерывание обрабатывает ввод с клавиатуры.
  4. shl edx,08 - Сдвигает содержимое регистра EDX на 8 бит (один байт) влево.
  5. or al,20 - Выполняет логическую операцию ИЛИ между AL и 20 (0010 0000 в двоичной системе), изменяя значение AL.
  6. mov dl,al - Перемещает значение AL в регистр DL.
  7. cmp edx,706F7473 - Сравнивает значение в регистре EDX (которое было сдвинуто на 8 бит ранее и изменено операцией ИЛИ) с 706F7473 (это ASCII представление слова Stop).
  8. jne 0101 - Если предыдущая операция cmp показала, что значения не равны, происходит переход к адресу 0101.
  9. int 20 - Вызывает прерывание 20H, которое завершает работу программы.

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

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