Título: Ensamblador suma de 32bits. Publicado por: D3MENTE en 28 Octubre 2015, 10:47 am Hola buenas,
Resulta que quería hacer un programa para sumar en esamblador, y nos dan un programa de prueba para ver como sería sin acarreo. Alguien podría explicarme el porque de sumar 4? pongo almoadilla en la parte del código. Código: .section .data Muchas gracias y un saludo. Título: Re: Ensamblador suma de 32bits. Publicado por: xv0 en 29 Octubre 2015, 15:55 pm Hola
El 4 que ves en el add, no suma nada ese 4 es la escala, se utiliza para calculos de offset mas complejos, o eso es lo que lei. Lo que sucede es lo siguiente, edx multiplica a la escala a 4 y luego suma al offset de ebx, y este suma X cosa que este en ese offset. Ejemplo: Citar edx = 0 ------ 0 x 4 = 0 --- edx + ebx + 0 edx = 1 ------ 1 x 4 = 4 --- edx + ebx + 4 edx = 2 ------ 2 x 4 = 8 --- edx + ebx + 8 Simple, piensa que la macros que tienes arriba, la $lista que esta en ebx, cada sumero son 4 bytes, lo que haces con ese 4 es saltar de 4 en 4, para pasar al siguiente numero. Cualquier cosa comenta. Un saludo. Título: Re: Ensamblador suma de 32bits. Publicado por: D3MENTE en 1 Noviembre 2015, 21:04 pm Muchas gracias por responder. Efectivamente, me estaba imaginando lo de los 4 bytes que es lo que ocupa cada numero., pero tenía que resolver la duda.
Muchas gracias! |