Сторнирование строки в сборке IA32 с помощью инструкции LOOP - PullRequest
0 голосов
/ 03 ноября 2019

Итак, у меня есть задание, в котором мне нужно перевернуть строку, которая вводится с помощью инструкции цикла (без использования push или pop). Мне удалось заставить программу перезаписывать строку символ за символом, но я не уверен, как отменить ее. Я считаю, что мне нужно проиндексировать последний символ строки и перепечатать их в цикле, но я не уверен, как это сделать. Не прошу никого писать код для меня, но любая помощь будет признательна.

INCLUDE Irvine32.inc

.data
    promptQuestion BYTE "Enter a phrase you would like to reverse!",0dh,0ah,0
    reverseWord  BYTE 127 DUP(?)

main PROC
    call Clrscr

    mov edx, OFFSET promptQuestion ;prompt question
    call WriteString

    mov edx, OFFSET reverseWord 
    mov ecx, 20                 ;set char limit
    Call ReadString             ;take user input

    mov ebx, 0
    mov edx, OFFSET reverseWord
    mov ecx, eax                ;prepare counter

ReverseOrder:
    dec ebx
    mov al, reverseWord[ebx]
    mov reverseWord, al
    call WriteChar

    loop reverseOrder

    exit
main ENDP
END main
...