SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: lestat_mike en Lunes 18 de Noviembre de 2002, 02:24
-
Hola a todos, necesito un codigo en ensamblador para los procesadores intel que lea de teclado dos numero, los sume, y presente en pantalla el resultado, agradeceria que alguien me pudiera enviar el codigo o algo que me pueda ayudar, y de paso un compilador de ensamblador;), pero cualquier cosa que me puedan enviar para ayudarme es bienvenida, thanks:P
-
Lee de teclado con una de las int que hay para eso (estan en todos los libros de la materia.
Lo que lees es un codigo ascii ,que pasas a numero restando 48 (decimal) y lo guardas en un registro libre.
Lees el segundo numero y los sumas con add
Para mostrarlos tb tienes int ,tendras que mostrar número a número , esta vez sumando 48(valor -->ascii).
No es el codigo pero está todo.
-
No alcanza con sumarle o restarle 48 para pasar de Hexa a Decimal o viceversa. Eso solo sirve para un solo digito. Si alguien ingresara el string "432"
Deberias comenzar a hacer divisiones sucesivas, por ejemplo por 100(luego de obviamente haber restado 48d a cada digito caracter). El resultado va a ser 4 y el resto 32.
A ese 4 lo multiplicas por 100 y lo pones en un registro. EL resto (32) lo divis por 10 ahora, y al resultado, 3, lo multiplicas por 10 y se lo sumas al registro que contenia el 400. Asi seguis hasta que dividis y multiplicas por 1.
Si vas a trabajar con numeros de 16 bits por ejemplo deberias comenzar a hacer las divisiones sucesivas arrancando por 10.000
Al terminar vas a haber hecho algo similar a la funcion Atoi de C.
-
Astor estas suponiendo que se introducen todos los números de una tacada y luego se procesan o que estan en un registro ya introducido. El problema es tomar el número de teclado ,no se realizaria niguna division sino una multiplicacion x10 de forma que :
0x10 = 0
+(tecla-48) 4=4
nueva tecla
x10 = 40
+3=43
nueva tecla
x10=430
+2=432
es el proceso contrario
El proceso que tu indicas es muy util para mostrar el resultado en pantalla
-
Si tenes razon, explique todo al reves. Deben ser los efectos del alcohol, menos mal estabas para rectificarme.
Gracias y saludos.