Questo sito ha bisogno della pubblicità per poter essere mantenuto. Gentilmente disabilita il blocco della pubblicità nel tuo browser per questo sito web.
Caricamento in corso...Caricamento in corso...
Caricamento in corso...

Stampa di una stringa in ordine inverso

Acquisisci una stringa da tastiera, massimo 8 caratteri, e restituiscila a video invertita.

Ad esempio: 123456 (INPUT) -> 654321 (OUTPUT)




#make_com#
;direttive
org  100h      ; set location counter to 100h
 
 
JMP start
 
inseriscistringa MACRO stringa ;macro per l'inserimento della stringa
 
MOV dx, OFFSET stringa
MOV ah, 0Ah
INT 21h
 
ENDM
 
visualizza MACRO stringar  ;macro per la visualizzazione delle stringhe
     
    LEA dx, stringar
    MOV ah, 09h
    INT 21h
     
ENDM
 
 
start: ;inizio del programma
visualizza msginserire
inseriscistringa stringaLetta
mov CL, stringaLetta[1]    ;copia in cl il numero effettivo di caretteri digitati
mov SI, CX   
add SI, 1
mov AX, 0
mov BX, 0
ciclo:
mov AH, stringaLetta[SI]      ;copia in ax i caratteri della stringa letta a partire dall'ultimo
mov stringaInversa[BX], AH    ;copia in stringaInversa i caratteri di stringaLetta
dec SI                        ;decrementa l'indice di controllo della variabile stringaLetta
inc BX                        ;incrementa l'indice di controllo della variabile stringaInversa
loop ciclo   
 
mov stringaInversa[BX], "$"   ;inserisci il "tappo" alla stringa
 
visualizza acapo 
visualizza msginvertita
visualizza msge               ;visualizzare il carattere "e" con l'accento
visualizza msgduepunti
visualizza acapo
visualizza stringaInversa     ;visualizza la variabile stringaInversa
 
 
RET
 
;dichiarazione delle variabili
stringaLetta db 9,?, 9 DUP("$")
stringaInversa db 9 DUP ("$")
msginserire db "Digitare una stringa di massimo 8 caretteri $"
msginvertita db "La stringa invertita $"
msgduepunti db ": $"
acapo db 10, 13, "$"
msge db 138, "$"