Ensamblador - Multiplicación por una constante

última actualización el 7 de octubre de 2009, 22:07 por Carlos-vialfa
Publicado por Carlos-vialfa
En lenguaje ensamblador podemos realizar una multiplicación utilizando las instrucciones mul (números sin signos) e imul.
Su sintaxis es la siguiente:

mul nombre_del_registro


El procesador multiplica internamente el valor almacenado en eax o ax o al (dependiendo del tamaño del registro dado como parámetro) luego guarda el resultado en eax o ax para la parte de menos peso del resultado y en edx o dx para la parte de mayor peso, si el registro pasado como parámetro de mul es superior a un byte.

El uso de mul es un poco complicado ya que es necesario desplazar el valor multiplicado a eax, el valor que se va a multiplicar a otro registro y el registro de resultado será necesariamente eax, lo que reemplaza al valor que poseía.

Sin embargo, si solo deseas multiplicar un registro por una constante y poner el resultado en el registro de tu elección, puedes utilizar un atajo con la instrucción “lea” (load effective address). Esta instrucción sirve para obtener la dirección de un dato en memoria.

lea registro_de_destino, [direccion_de_memoria]; coloca direccion_de_memoria en
registro_de_destino


La gran ventaja es que en lugar de la dirección de memoria, puedes poner la multiplicación o la adición de un registro por una constante.

Supongamos que quieres multiplicar ecx por 7 y poner el resultado en ebx, el comando seria:

lea ebx, [ecx * 7]


Desgraciadamente no es posible multiplicar dos registros utilizando este atajo.

PD: El artículo original fue escrito por kilian, contribuidor de CommentCaMarche
Mejores respuestas para « Ensamblador Multiplicación por una constante » en :
Ejercicio de ensamblador x86: número primo Ver Introducción Nociones abordadas en este ejercicio Enunciado Para recordar Solución Explicación Introducción Este pequeño ejercicio de ensamblador es para las arquitecturas x86 (procesador Intel y Amd 32 bits) y utiliza la sintaxis de...
Memorizar constantes en Excel Ver Creaste una tabla en Excel, y hay varias constantes que se repiten (IVA, Tarifa horaria, etc.). Solución 1: escribir las constantes directamente en las formulas, ejemplo: =C3*1,19 calcula un valor incluyendo el IVA a partir de un valor sin...
Ejercicio de ensamblador x86: ocurrencia de un carácter Ver Introducción Nociones abordadas en este ejercicio Enunciado Solución Explicación Introducción Este pequeño ejercicio de ensamblador es para las arquitecturas x86 (procesador Intel y Amd 32 bits) y utiliza la sintaxis de Nasm, un...
Compilar un programa ensamblador con Nasm VerEn Linux Etapa 1. Crear un fichero fuente Etapa 2. Ensamblar el fichero fuente Etapa 3. Creación del ejecutable Etapa 4. Ejecución del programa En Windows Etapa 1. Instalar los programas necesarios Etapa 2. Crear un fichero fuente Etapa 3....
No tengo el CD/DVD de Windows ¿Cómo hago? VerTu Windows no inicia, se cuelga constantemente, tiene virus o simplemente quieres hacer una limpieza completa, pero no tienes el CD/DVD de Windows para formatear, reinstalar o reparar XP o Vista. Hay que hacer la distinción entre los discos de...
Manipulación básica de matrices en MatLab VerIndice I. Cómo se almacenan las matrices II. La indexación lineal II.1. Acceder a un elemento de una matriz utilizando la indexación lineal II.2. Pasar de una indexación a otra II.2.1. La función ind2sub II.2.2. La función sub2ind III. La...
Codificación binaria VerIntroducción al sistema binario A finales de la década de 1930, Claude Shannon mostró que utilizando interruptores que se encontraban cerrados para "verdadero" y abiertos para "falso", se podían llevar a cabo operaciones lógicas asignando el número 1...
Ensamblaje del ordenador (PC): Instalación del disco duro VerDiscos duros, unidades de CD-ROM, DVD-ROM y disquete La placa madre normalmente tiene dos conectores IDE (Electrónica de dispositivos integrados): El primer conector se conoce como el driver de dispositivo primario. El segundo se conoce como el...
Ensamblaje del ordenador (PC) VerMontaje del ordenador Un ordenador (PC) es un tipo modular de ordenador. Se puede montar utilizando componentes de hardware de diferentes fabricantes para conseguir un ordenador a medida conforme a sus necesidades. Los componentes integrantes del...