Salve a tutti, ho un programma che letto un carattere da tastiera deve confrontarlo con un altro, contenuto in una variabile. Se i due sono uguali deve stampare una macro se diversi un'altra. Il programma funziona in parte, cioè le macro funzionano correttamente e le ho pure testate, anche quella legata alla lettura del carattere da tastiera, ma la parte finale dove c'è l'if stampa sempre la macro di "micio" cioè la seconda.
Ecco il sorgente del programma, magari si capisce di più :
codice:
.data
messaggio1: .string "gatto"
messaggio2: .string "micio"
lettera: .string "a"
carattere: .string "" # stringa vuota per prendere carattere da tastiera
.text
.globl _start
# creo la macro per stampare messaggio1
.macro stampagatto
mov $4, %eax
mov $1, %ebx
mov $messaggio1, %ecx
mov $5, %edx
int $0x80
.endm
# creo la macro per stampare messaggio2
.macro stampamicio
mov $4, %eax
mov $1, %ebx
mov $messaggio2, %ecx
mov $5, %edx
int $0x80
.endm
# creo la macro per l'inserimento di un carattere da tastiera
.macro inserisci
mov $3, %eax
mov $0, %ebx
mov $carattere, %ecx
mov $2, %edx
int $0x80
.endm
_start:
inserisci
mov carattere, %eax
mov lettera, %ebx
cmp %eax, %ebx
je vero
stampamicio
jmp fine
vero:
stampagatto
fine:
mov $1, %eax
int $0x80
Vi ringrazio in anticipo e attendo vostre risposte