Ahia, c'hai ragione, grazie mille per l'aiuto e per la pazienza nei confronti di un novizio, ti allego il codice funzionante (ma non ancora ottimizzato), alla prossima.
;Verificare se una parola è palindroma o no (non ottimizzato)
SECTION .text
global _start
_start: ; tell linker entry point.
mov ecx, string ;assegna il puntatore a string a exc
add ecx, len ;somma string+len e assegnalo a ecx
sub ecx, 3 ;dato che bisogna eliminare il ,10,13,0 (non bisogna contarli come caratteri)
mov eax, string ;assegna il puntatore a string a eax
mov edx, len ;registro che terrà il conto di quante volte il ciclo è stato fatto
sub edx, 3
_ciclo:
mov bl, [ecx]
cmp [eax], bl
jne _stampaNonPalindroma
inc eax ;si decrementa il valore di eax (del puntatore) per potere controllare la cella puntata da string+len-3-n (n varierà ogni volta)
dec ecx ;si decrementa il valore di ecx (del puntatore) per potere controllare la cella puntata da string+len-3-n (n varierà ogni volta)
dec edx ;si decrementa il valore di ebx in modo tale da ripetere il ciclo len volte
cmp edx,0h ;si verifica se il ciclo è stato ripetuto len volte
jnz _ciclo
jmp _stampaPalindroma ;se uscirà "indenne" dal ciclo vuol dire che la parola è palindroma
_stampaPalindroma:
mov ecx, string2
mov edx, len2
mov ebx, 1 ; file descriptor (stdout)
mov eax, 4 ; system call number (sys_write)
int 0x80
jmp _esci
_stampaNonPalindroma:
mov ecx, string3
mov edx, len3
mov ebx, 1
mov eax, 4
int 0x80
jmp _esci
_esci:
mov eax, 1
int 0x80
section .data
string: db "anna",10,13 ;10 line feed, 13 carriage return, 0 null.
len: equ $-string
string2: db "Palindroma",10,13
len2: equ $-string2
string3: db "Non Palindroma",10,13
len3: equ $-string3