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ù :
Vi ringrazio in anticipo e attendo vostre rispostecodice:.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![]()

Rispondi quotando