8_NUM_LETRA.s



# 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