SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: lestat_mike en Lunes 18 de Noviembre de 2002, 02:24

Título: Re: suma de dos numeros
Publicado 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
Título: Re: suma de dos numeros
Publicado por: deldar en Lunes 9 de Diciembre de 2002, 23:54
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.
Título: Re: suma de dos numeros
Publicado por: Astor en Miércoles 5 de Febrero de 2003, 18:05
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.
Título: Re: suma de dos numeros
Publicado por: deldar en Viernes 7 de Febrero de 2003, 00:14
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
Título: suma de dos numeros
Publicado por: Astor en Sábado 8 de Febrero de 2003, 20:54
Si tenes razon, explique todo al reves. Deben ser los efectos del alcohol, menos mal estabas para rectificarme.

Gracias y saludos.