Записать в память фамилию студента, вывести эту фамилию в обратном порядке - 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

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

  1. Начало кода: org 100h — инициализация сегмента данных
  2. Запрос на ввод строки: mov ah,9; mov dx, req; int 21h
  3. Ввод строки: mov ah, 0Ah; mov dx, inpbuf; int 21h
  4. Переменная для хранения строки: si
  5. Запись строки в буфер: lodsb
  6. Переменная для хранения обратной строки: di
  7. Переменные для хранения размеров строки: cx, bx
  8. Цикл по символам строки: loop
  9. Вывод строки в обратном порядке: mov ax, 0D0Ah; int 29h
  10. Обмен регистров ah и al: xchg ah,al
  11. Вывод символа: stosb
  12. Цикл по символам строки: loop
  13. Завершение работы программы: mov ah, 4Ch; int 21h
  14. Значение, переданное в качестве параметра в функцию: req: db 'Enter string:$'
  15. Буфер для ввода строки: inpbuf: db 50h, 0

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


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

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

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