Переверните строку, используя цикл в сборке - PullRequest
0 голосов
/ 17 сентября 2018

Мне недавно было дано задание от моего профессора ввести строку и вывести ее в обратном порядке, он помог моему классу написать код, который печатает каждый символ строки в отдельной строке, как показано ниже:

INCLUDE Irvine32.inc

;// .386
;// .model flat,stdcall
;// .stack 4096
ExitProcess proto,dwExitCode:dword

.data       ;// write your data in this section 
    prompt BYTE "Enter a string", 0ah, 0dh, 0
    text BYTE 101 DUP(?)

.code       ;// write your program here
main proc
    mov edx, OFFSET prompt
    call WriteString        ;prompt for input

    mov edx, OFFSET text    ; setup for text
    mov ecx, 100            ; max characters
    call ReadString

    mov ebx, 0
    mov edx, OFFSET text    ; setup of output
    call StrLength          ; get number of characters
    mov ecx, eax            ; setup the count register
L1:                     
    mov al, text[ebx]       
    call WriteChar          
    call Crlf               
    inc ebx             
    loop L1
main endp
end main

Затем он велел нам манипулировать кодом, чтобы он печатал строку в обратном порядке, он говорил что-то об использовании косвенной адресации и уменьшал адрес в цикле, может кто-нибудь помочь подробнее остановиться на этом, не ища кто-нибудь, чтобы сделать код для меня, просто руководство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...