# CONVIERTE UN NUMERO DE UN DIGITO A LETRA
.data
NUM: .string "NUMERO(1-9) = "
T1: .string "1 = UNO"
T2: .string "2 = DOS"
T3: .string "3 = TRES"
T4: .string "4 = CUATRO"
T5: .string "5 = CINCO"
T6: .string "6 = SEIS"
T7: .string "7 = SIETE"
T8: .string "8 = OCHO"
T9: .string "9 = NUEVE"
# Longitudes de las cadenas
LNUM: .int 14
L1: .int 7
L2: .int 7
L3: .int 8
L4: .int 10
L5: .int 9
L6: .int 8
L7: .int 9
L8: .int 8
L9: .int 9
X: .int 1 # variable
NL: .byte 0x0A
# MUESTRA MENSAJE
.macro print mess len
movl $4, %eax
movl $1, %ebx
movl \mess, %ecx
movl \len, %edx
int $0x80
.endm
.text
.global main
main:
print $NUM LNUM
# pide el nUmero a convertir
movl $3, %eax
movl $0, %ebx
movl $X, %ecx
movl $1, %edx
int $0x80
subl $48, X # ajusta el valor dado de teclado (ascii)
cmpl $1, X
je uno
cmpl $2, X
je dos
cmpl $3, X
je tres
cmpl $4, X
je cuatro
cmpl $5, X
je cinco
cmpl $6, X
je seis
cmpl $7, X
je siete
cmpl $8, X
je ocho
print $T9 L9
print $NL $1
ret
ocho:
print $T8 L8
print $NL $1
ret
siete:
print $T7 L7
print $NL $1
ret
seis:
print $T6 L6
print $NL $1
ret
cinco:
print $T5 L5
print $NL $1
ret
cuatro:
print $T4 L4
print $NL $1
ret
tres:
print $T3 L3
print $NL $1
ret
dos:
print $T2 L2
print $NL $1
ret
uno:
print $T1 L1
print $NL $1
ret