Lenguaje ensamblador El lenguaje ensamblador es un lenguaje de programación que es una traducción directa del código de máquina (Éste código

es interpretado por el microprocesador), para que pueda ser entendible por los seres humanos, por lo tanto es un lenguaje de bajo nivel. El lenguaje ensamblador permite una optimización que no se consigue con lenguajes de medio y alto nivel. Permite la creación de programas muy rápidos y muy pequeños, además se tiene un control que no se consigue con un lenguaje de alto nivel. Hay que tener en cuenta que éste libro está orientado a la arquitectura x86 (Es la arquitectura que utiliza la PC IBM y las compatibles) y no es compatible con otra arquitectura.

Sintaxis del lenguaje ensamblador
La sintaxis es la siguiente Nombre de la instrucción Operando 1, Operando 2, Operando 3, Operando 4, ... El nombre de la instrucción está formada por 2 o 3 letras, los operandos pueden ser registros, constantes o direcciones de memoria. La cantidad de operandos dependerá de la instrucción. Por ejemplo: MOV AL, [1000] Esta instrucción indica que se copie el valor de la porción de la memoria que esté en la ubicación 1000 (En hexadecimal) a la parte baja del registro AX (AL). Cuando un operando es un valor de una dirección de memoria, ésta dirección se escribe entre corchetes, recordar que el operando 1 es el destino y el operando 2 es el origen. Y cuando es una constante dependerá del ensamblador, en el caso del debug (Un programa que sirve para crear y editar aplicaciones que viene con el DOS) se interpretarán como hexadecimales, en los siguientes ejemplos se interpretará que las constantes son números hexadecimales. También se puede tomar un valor de la memoria apuntado por un registro, por ejemplo: MOV AL, [DI] DI está apuntado al valor que está en la memoria que será copiado al registro AL. El nombre MOV viene de la palabra move, que es una palabra del ingles que significa mover. Justamente la instrucción mencionada significa, mover el valor apuntado por DI a AL. También se puede copiar el valor de un registro a otro MOV AL, BL En este caso se copia el valor de BL a AL

En BASIC. en este caso más complejo. en informática. El programador debe introducir todos y cada uno de los comandos y datos en forma binaria. El código objeto resultante es un programa rápido y listo para funcionar.Relación entre los lenguajes de alto nivel y el lenguaje ensamblador. sino que recorren el código fuente una línea cada vez. Véase también Lenguaje de programación. las instrucciones de programa legibles por el programador y escritas en un lenguaje ensamblador o de más alto nivel. Los intérpretes. debe compilarse de nuevo. resulta difícil de utilizar para las personas. por otro lado. pero también puede ser código fuente de lenguaje ensamblador o una variante de código máquina. Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales. el lenguaje de alto nivel más conocido. Casi siempre este término se refiere al código máquina que puede ejecutarse directamente en la unidad central de proceso (CPU) del sistema. Un compilador crea una lista de instrucciones de código máquina. es menos susceptible de provocar fallos en la computadora. pero que puede hacer que falle el ordenador si no está bien diseñado. traducido a partir del código fuente de un programa. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante. basándose en un código fuente. son más lentos que los compiladores ya que no producen un código objeto. como el inglés. Lenguaje máquina El lenguaje propio del ordenador. como en el caso de los programas en que se reutilizan partes del código. Intérpretes y compiladores La traducción de una serie de instrucciones en lenguaje ensamblador (el código fuente) a un código máquina (o código objeto) no es un proceso muy complicado y se realiza normalmente por un programa especial llamado compilador. Cada línea se traduce a código máquina y se ejecuta. o mediante un intérprete. que se deriva del código fuente y está diseñado para ser legible sólo por la máquina. en informática. basado en el sistema binario. los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. El concepto contrario es el código objeto. y una operación sencilla como comparar el contenido de un registro con los datos situados en una ubicación del chip de memoria puede tener el siguiente . código generado por un compilador o un ensamblador. lo hacen en realidad de una forma rígida y sistemática. Código objeto. dado que a pesar de que las computadoras parecen comprender un lenguaje natural. Aunque este proceso es más lento. La traducción de un código fuente de alto nivel a un código máquina también se realiza con un compilador. Código fuente. Cuando la línea se lee por segunda vez. el código objeto. o código máquina.

el lenguaje ensamblador puede utilizarse con un solo tipo de chip de CPU o microprocesador. En el lenguaje ensamblador. Lo que se necesitaba era un método abreviado en el que un enunciado simbólico pudiera representar una secuencia de numerosas instrucciones en lenguaje máquina. Lenguaje ensamblador Uno de los métodos inventados por los programadores para reducir y simplificar el proceso es la denominada programación con lenguaje ensamblador. Las instrucciones de macros se pueden guardar en el programa mismo o en un archivo separado que el programa pueda identificar. y un método que permitiera que el mismo programa pudiera ejecutarse en varios tipos de máquinas. a código objeto (es decir. que dedicaron tanto tiempo y esfuerzo al aprendizaje de la programación de un ordenador. Al asignar un código mnemotécnico (por lo general de tres letras) a cada comando en lenguaje máquina. a lenguaje máquina) y. Un programa ensamblador traduce el código fuente. un conjunto de acciones o instrucciones grabadas y ejecutadas mediante una simple una instrucción. Estas necesidades llevaron al desarrollo de lenguajes de alto nivel. MACRO INTERNO .formato: 11001010 00010111 11110101 00101011. MACROS Macro: en aplicaciones de computadora. Los programadores. una lista de códigos de operación mnemotécnicos y de operadores simbólicos. a continuación. Si la aplicación incluye también un lenguaje de macros que responda a variables e instrucciones condicionales. Así se evita la introducción repetitiva de instrucciones. cada comando mnemotécnico y sus operadores simbólicos equivalen a una instrucción de máquina. “En el lenguaje de programación ensamblador”. haciendo que la macro responda de forma diferente bajo condiciones diversas. es posible escribir y depurar o eliminar los errores lógicos y de datos en los programas escritos en lenguaje ensamblador. una macro es un nombre que define un conjunto de instrucciones que serán sustituidas por la macro cuando el nombre de ésta aparezca en un programa (proceso denominado expansión de macros) en el momento de ensamblar el programa. Sin embargo. el usuario puede también controlar el resultado de un procedimiento. empleando para ello sólo una fracción del tiempo necesario para programar en lenguaje máquina. se veían obligados a aprender un nuevo estilo de programación cada vez que trabajaban con otra máquina. se minimizan los errores tipográficos y se permite a los usuarios que no conozcan el programa reproducir conjuntos de instrucciones previamente grabados por alguien más experto en la aplicación. La programación en lenguaje máquina es una tarea tan tediosa y consume tanto tiempo que muy raras veces lo que se ahorra en la ejecución del programa justifica los días o semanas que se han necesitado para escribir el mismo. ejecuta el programa.

aunque es aceptable cualquier otro nombre válido que sea único. Fin de la macro El nombre de esta macro es INICIO. Una macro es una pseudo-op que permite el establecimiento de operaciones únicas en ensamblador o la inclusión de frecuentes llamadas de código ensamblador. AX MOV ES. El formato de esta directiva es : (nombre_de_macro) MACRO (lista_parámetros) Una macro consta de tres partes esenciales: a) CABECERA: Contiene el nombre de la macro. [1] Internas.Una macro. variables ficticias que serán pasadas desde la macro. Las instrucciones entre MACRO y ENDM comprenden el cuerpo de la definición de la macro. La directiva MACRO en la primer línea indica al ensamblador que las instrucciones que siguen. Si su programa realiza frecuentemente funciones de entrada/salida. la pseudo-op MACRO y opcionalmente. la definición . se utiliza la directiva MACRO. Una macro interna es aquella que se declara y se llaman dentro del mismo programa. es un conjunto de instrucciones que se pueden mandar a llamar desde cualquier parte del programa. cuerpo de . La directiva ENDM termina la definición de la macro. c) FIN: Debe incluir la sentencia ENDM. hasta ENDM (“fin de la macro”). son parte de la definición de la macro. DATA MOV DS. b) CUERPO: Contiene el código real que será insertado en cualquier programa que llame al nombre de la macro. Para definir una macro. AX ENDM . Ejemplo de una macro sencilla: INICIO MACRO . las macros ofrecen la facilidad de codificar una sola vez un conjunto de instrucciones y reutilizar el código cuantas veces desee dentro de su programa. Define macro MOV AX. Una macro también se puede definir como un grupo de instrucciones repetitivas en un programa que se codifica sólo una vez y puede utilizarse cuantas veces sea necesario. de la macro . Una macro interna se declara de la siguiente manera: Sintaxis: .

-Cuando se van a generar diversas variantes de código similar 3. No es como los procedimientos.-No cuando se quiere código compacto. [2] . 2 Duplica AL . que se “llaman” pero no repiten el código Ejemplo: MOV AL. 1 ENDM Código que la usa: MOV AL. 1 . Esta es la “llamada” al macro El ensamblador sustituye cada vez que aparezca la macro. evitando repetir el mismo (en este caso.<Nombre> MACRO [parámetros] … ENDM Ejemplo: Duplica AL? MACRO SHL AL. 2 Duplica AL . CALL Duplica Duplica AL .. CALL Duplica Este código queda: MOV AL. 2 SHL AL. 1 . CALL Duplica Cuándo usarlas y cuándo no 1.Cuando se quiere el código más rápido y no importa ser repetitivo (código grande) 2. usar procedimientos). CALL Duplica SHL AL.

Sign up to vote on this title
UsefulNot useful