Записать в память фамилию студента, вывести эту фамилию в обратном порядке - Assembler
Формулировка задачи:
Записать в память фамилию студента. Написать программу, выводящую на экран эту фамилию в обратном порядке.
Решение задачи: «Записать в память фамилию студента, вывести эту фамилию в обратном порядке»
textual
Листинг программы
;FASM org 100h mov ah,9 mov dx, req int 21h mov ah, 0Ah mov dx, inpbuf int 21h mov si, dx lodsw mov di, si shr ax, 8 mov cx, ax mov bx, cx @@: lodsb push ax loop @B mov ax, 0D0Ah int 29h xchg ah,al int 29h mov cx,bx @@: pop ax stosb int 29h loop @B mov ah, 4Ch int 21h req: db 'Enter string:$' inpbuf: db 50h, 0
Объяснение кода листинга программы
- Начало кода: org 100h — инициализация сегмента данных
- Запрос на ввод строки: mov ah,9; mov dx, req; int 21h
- Ввод строки: mov ah, 0Ah; mov dx, inpbuf; int 21h
- Переменная для хранения строки: si
- Запись строки в буфер: lodsb
- Переменная для хранения обратной строки: di
- Переменные для хранения размеров строки: cx, bx
- Цикл по символам строки: loop
- Вывод строки в обратном порядке: mov ax, 0D0Ah; int 29h
- Обмен регистров ah и al: xchg ah,al
- Вывод символа: stosb
- Цикл по символам строки: loop
- Завершение работы программы: mov ah, 4Ch; int 21h
- Значение, переданное в качестве параметра в функцию: req: db 'Enter string:$'
- Буфер для ввода строки: inpbuf: db 50h, 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д