Testo:
Si scriva un programma in linguaggio Assembler 8086 che esegua le seguenti operazioni:
a)Acquisisca da tastiera una stringa di caratteri
b)Controlli se la stringa acquisita è palindroma
c)Visualizzi a video un messaggio:
c1)che indichi se la stringa se è palindroma o meno
c2)nel caso non sia palindroma stampi a video la stringa invertita.
Soluzione:
MAX EQU 3
.model small
.stack
.data
vett DB MAX dup (?)
.code
.startup
MOV CX, MAX
LEA SI, vett
MOV DI, SI
ciclo:
MOV AH, 1
INT 21H
MOV [SI], AL
INC SI
LOOP ciclo
DEC SI
PUSH SI
MOV CX, MAX/2
confronto:
MOV AL, [SI]
CMP AL, [DI]
JNE nonpal:
INC DI
DEC SI
LOOP confronto
JMP pal
nonpal:
MOV AH, 0
MOV DL, '!'
INT 21H
pal:
POP SI
MOV CX, MAX
MOV AH, 0
stampa:
MOV DL, [SI]
INT 21H ;scrive cio' che c'e' in DL
DEC SI
LOOP stampa
MOV AH, 1
INT 21H
.exit
end
| < Prec. | Succ. > |
|---|





