Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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:
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:
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.
MOV AL, BL
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. La traducción de un código fuente de alto nivel a un código
máquina también se realiza con un compilador, en este caso más complejo, o
mediante un intérprete. Un compilador crea una lista de instrucciones de
código máquina, el código objeto, basándose en un código fuente. El código
objeto resultante es un programa rápido y listo para funcionar, pero que
puede hacer que falle el ordenador si no está bien diseñado. Los intérpretes,
por otro lado, son más lentos que los compiladores ya que no producen un
código objeto, sino que recorren el código fuente una línea cada vez. Cada
línea se traduce a código máquina y se ejecuta. Cuando la línea se lee por
segunda vez, como en el caso de los programas en que se reutilizan partes
del código, debe compilarse de nuevo. Aunque este proceso es más lento, es
menos susceptible de provocar fallos en la computadora.
Código fuente, en informática, las instrucciones de programa legibles por el
programador y escritas en un lenguaje ensamblador o de más alto nivel. El
concepto contrario es el código objeto, que se deriva del código fuente y está
diseñado para ser legible sólo por la máquina. Véase también Lenguaje de
programación.
Código objeto, en informática, código generado por un compilador o un
ensamblador, traducido a partir del código fuente de un programa. 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, pero
también puede ser código fuente de lenguaje ensamblador o una variante de
código máquina.
Lenguaje máquina
El lenguaje propio del ordenador, basado en el sistema binario, o código
máquina, resulta difícil de utilizar para las personas. El programador debe
introducir todos y cada uno de los comandos y datos en forma binaria, 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
formato: 11001010 00010111 11110101 00101011. 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.
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. Al asignar un código mnemotécnico (por lo general de tres
letras) a cada comando en lenguaje máquina, es posible escribir y depurar o
eliminar los errores lógicos y de datos en los programas escritos en lenguaje
ensamblador, empleando para ello sólo una fracción del tiempo necesario
para programar en lenguaje máquina. En el lenguaje ensamblador, cada
comando mnemotécnico y sus operadores simbólicos equivalen a una
instrucción de máquina. Un programa ensamblador traduce el código fuente,
una lista de códigos de operación mnemotécnicos y de operadores
simbólicos, a código objeto (es decir, a lenguaje máquina) y, a continuación,
ejecuta el programa.
Sin embargo, el lenguaje ensamblador puede utilizarse con un solo tipo de
chip de CPU o microprocesador. Los programadores, que dedicaron tanto
tiempo y esfuerzo al aprendizaje de la programación de un ordenador, se
veían obligados a aprender un nuevo estilo de programación cada vez que
trabajaban con otra máquina. 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, y un método que permitiera
que el mismo programa pudiera ejecutarse en varios tipos de máquinas.
Estas necesidades llevaron al desarrollo de lenguajes de alto nivel.
MACROS
MACRO INTERNO
Una macro, es un conjunto de instrucciones que se pueden mandar a llamar desde
cualquier parte del programa.
Para definir una macro, se utiliza la directiva MACRO. El formato de esta directiva es :
b) CUERPO: Contiene el código real que será insertado en cualquier programa que
llame al nombre de la macro.
INICIO MACRO
; Define macro
MOV AX, DATA ; cuerpo de
MOV DS, AX ; la definición
MOV ES, AX ; de la macro
ENDM ; Fin de la macro
El nombre de esta macro es INICIO, aunque es aceptable cualquier otro nombre válido
que sea único. La directiva MACRO en la primer línea indica al ensamblador que las
instrucciones que siguen, hasta ENDM (“fin de la macro”), son parte de la definición de
la macro.
Internas.
Una macro interna es aquella que se declara y se llaman dentro del mismo programa.
Sintaxis:
<Nombre> MACRO [parámetros]
ENDM
Ejemplo:
SHL AL, 1
ENDM
MOV AL, 2
MOV AL, 2
MOV AL, 2
1.- Cuando se quiere el código más rápido y no importa ser repetitivo (código grande)
3.-No cuando se quiere código compacto, evitando repetir el mismo (en este caso, usar
procedimientos). [2]