Asamblea - Multiplicación por una constante

Puede realizar una multiplicación utilizando instrucciones multimedia como imul y mul en el código del lenguaje ensamblador, como Mul name_register. El procesador multiplica internamente los códigos de programación al segregar los parámetros de tamaños, como para eax, ax y al, y luego almacena el resultado en eax o ax como "bajo" y los resultados en edx o dx como "más significativos", con el resultado la última grabación se establece, si el múltiplo es mayor que un byte.

Como los archivos multimedia son enormes en la memoria, es posible que deba cambiar los valores en eax para multiplicarlos en el registro, y el resultado del registro debe ser eax, con el valor anterior sobrescrito. Sin embargo, si necesita multiplicar un registro por una constante, ponga el resultado en el registro y luego use un atajo con la instrucción "lea".

Introducción corta

Los lenguajes de ensamblaje son lenguajes de bajo nivel para la programación de computadoras y se desarrollaron por primera vez en la década de 1950. En su mayoría son conocidos como lenguajes de programación de segunda generación. Una característica importante del lenguaje ensamblador, es que eliminaron gran parte de las operaciones propensas a errores y que requieren mucho tiempo en la programación de primera generación.

Multiplicación en montaje.

En el ensamblaje puede multiplicar dos números usando las instrucciones mul (números sin signo) e Imul. Se utilizan de la siguiente manera:

 nombre_registro mul 

El procesador aumenta el contenido de eax o ax o al (según el tamaño del registro, que se proporciona en los parámetros) y luego almacena el resultado en eax, ax, edx o dx.

Usar mul es bastante problemático porque tendrá que mover el valor multiplicado a eax, el valor para multiplicar a un registro diferente y el registro que contiene el resultado debe ser eax.

Sin embargo, si solo quiere multiplicar un registro por una constante y colocar el resultado en el registro de su elección, puede usar un atajo con la instrucción "lea" (carga de la dirección efectiva). Esta instrucción se utiliza para recuperar la dirección de un dato en la memoria.

 lea destination_registry, [memory_address]; coloca memory_address en destination_registry 

La gran ventaja de esto es que, mediante el uso de una constante, no es necesario utilizar una dirección de memoria adicional. Imagina que quieres multiplicar ecx por 7 y guardar el resultado en ebx, el comando sería:

 lea ebx, [ecx * 7] 

Nota: No puede multiplicar dos registros juntos usando este acceso directo.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos