31/05/09 14:29
luca94
Salve a tutti,
sto imparando l' assembler AT&T ma ho un problema con questo programma:
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ì:
quando lo eseguo mi dice sempre "uguale" cioè salta all etichetta "m" anche se 1 è diverso da 2...come mai???
Grazie!!!
sto imparando l' assembler AT&T ma ho un problema con questo programma:
.data str: .string "uguale\n" lenstr = .-str .text .global main main: movl ,%eax cmpl ,%eax je m m: movl ,%eax movl ,%ebx movl $str,%ecx movl $lenstr,%edx int Salve a tutti,
sto imparando l' assembler AT&T ma ho un problema con questo programma:.data str: .string "uguale\n" lenstr = .-str .text .global main main: movl ,%eax cmpl ,%eax je m m: movl ,%eax movl ,%ebx movl $str,%ecx movl $lenstr,%edx int {parsed_message}x80
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ì:.data str: .string "uguale\n" lenstr = .-str .text .global main main: movl ,%eax cmpl ,%eax je m m: movl ,%eax movl ,%ebx movl $str,%ecx movl $lenstr,%edx int {parsed_message}x80
quando lo eseguo mi dice sempre "uguale" cioè salta all etichetta "m" anche se 1 è diverso da 2...come mai???
Grazie!!!
x80
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ì:
.data str: .string "uguale\n" lenstr = .-str .text .global main main: movl ,%eax cmpl ,%eax je m m: movl ,%eax movl ,%ebx movl $str,%ecx movl $lenstr,%edx int Salve a tutti,
sto imparando l' assembler AT&T ma ho un problema con questo programma:.data str: .string "uguale\n" lenstr = .-str .text .global main main: movl ,%eax cmpl ,%eax je m m: movl ,%eax movl ,%ebx movl $str,%ecx movl $lenstr,%edx int {parsed_message}x80
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ì:.data str: .string "uguale\n" lenstr = .-str .text .global main main: movl ,%eax cmpl ,%eax je m m: movl ,%eax movl ,%ebx movl $str,%ecx movl $lenstr,%edx int {parsed_message}x80
quando lo eseguo mi dice sempre "uguale" cioè salta all etichetta "m" anche se 1 è diverso da 2...come mai???
Grazie!!!
x80
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 31/05/09 14:30
aaa