Buenas, estoy intentando hacer un menú para un programa pero no hay manera....El problema lo tengo, cuando quiero comparar la tecla que pulsa el usuario con una de las 3 opciones. Es decir quiero, que el usuario pulse (1, 2 ó 3) lo compare el programa y elija la opcion correspondiente.... Mirad el codigo: (esta recortado del programa)
.data # directiva que indica que comienzan los datos
buffer: .ascii "7"
.text # directiva que indica que comienza el codigo
.globl _start # definición del punto de comienzo del programa
_start:
(#Aqui mostraria el menu con las distintas opciones)
#Aqui esta puesto para que el usuario introduzca un numero.
movl $3, %eax
movl $0, %ebx
movl $buffer, %ecx
movl $5, %edx
int $0x80
movl $4, %eax #Saco el numero por pantalla para comprobar k lo ha leido bien
movl $1, %ebx
movl $buffer, %ecx
movl $5, %edx
int $0x80
movl (buffer), %eax
movl $49, %ebx # ascii del numero 1.
cmpl %eax, %ebx #He aqui mi problema, por mucho que meta el numero 1, por teclado, no me lo compara bien..
je salir #Deberia saltar a salir, en este ejemplo, pero no lo compara bien, supongo, k xk el buffer, no valdra "1" solo...
movl $3, %eax
movl $0, %ebx
movl $buffer, %ecx
movl $5, %edx
int $0x80
salir:
movl $1, %eax #EAX=función sys_exit() del kernel para terminar el programa
movl $0, %ebx #EBX=código de retorno al SO
int $0x80 #llamar al kernel para que ejecute la función indicada en EAX
Agradeceria que alguien me pudiera ayudar, es una gran tonteria, pero que hace que mi programa no rule....
Un saludo.