Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti,
sto imparando l' assembler AT&T ma ho un problema con questo programma:
Codice sorgente - presumibilmente Altri Linguaggi
.data
str:
.string "uguale\n"
lenstr = .-str
.text
.global main
main:
movl $1,%eax
cmpl $1,%eax
je m
m:
movl $4,%eax
movl $1,%ebx
movl $str,%ecx
movl $lenstr,%edx
int $0x80
Il codice inserisce 1 nel registro ax, confronta 1 con ax (che è uguale a 1) dopodicchè il comando "je" verifica se "1" è uguale ad "ax" e in caso affermativo salta all' etichetta "m" dove scrive "uguale". Il problema è che se modifico il codice mettendo 2 al posto di 1 nel registro ax..cioè così:
Codice sorgente - presumibilmente Altri Linguaggi
.data
str:
.string "uguale\n"
lenstr = .-str
.text
.global main
main:
movl $2,%eax
cmpl $1,%eax
je m
m:
movl $4,%eax
movl $1,%ebx
movl $str,%ecx
movl $lenstr,%edx
int $0x80
quando lo eseguo mi dice sempre "uguale" cioè salta all etichetta "m" anche se 1 è diverso da 2...come mai???
Grazie!!!
Ultima modifica effettuata da luca94 il 31/05/2009 alle 16:30