You are on page 1of 17

|  


 
| 
|  

2 Las 6  son comandos que


afectan al ensamblador, no al procesador.
2 àe puede usar para preparar segmentos y
procedimientos, definir símbolos, reservar
memoria, etc.
 

2 Las   asignan un nombre a una


instrucción. Esto permite hacer referencia
a ellas en el resto del programa.
2 uueden tener una máximo de 31
caracteres y deben terminar en ³:´
|   |
  

2 0n programa consta de al menos tres


segmentos: Cà, Dà, àà
2 Las directivas ³àEGMENT´ y ³ENDà´ indican
al assembler el inicio y fin de un segmento.
2 Formato: label àEGMENT
;código de segmento
label ENDà
  |  
| 

2 Caracter AàCII:
Caracter aislado o strings de caracteres deben estar escritos dentro
de apostrofes (µ)

Ejemplo: µA¶
µhola¶
2 Variable: es un nombre para un dato actualizable por el programa
DB define 1 byte (8 bits)
DW define una palabra (16 bits, 2 bytes consecutivos)
DD define doble palabra (2 palabras, 4 bytes consecutivos)
DQ define cuatro palabras (4 palabras, 8 bytes consecutivos)
DT define diez bytes (10 bytes consecutivos)
  |  
| 

2 Ejemplos:
´ Alfa DB 0 ;equivale a 00h
´ A DB 10h
´ B DB 0150h ;ilegal
´ Word DW 0h ;equivale a 0000h
´ CONTA DW 0150h ;

Array: àecuencia de bytes o palabras consecutivas en la memoria


Almacena datos relacionados
Almacena caracteres AàCII organizados ( ex: texto)
Ejemplo: BYTE_ARRAY DB 10h,20h,30h
WORD_ARRAY DW 1000h,123h,0ffffh
tabla DB 10 D0u (1, 2, 3, 4)
| 
 
 
| 
2 Directivas simplificadas: se utilizan para definir segmentos
´ El tamaño que los segmentos de códigos y de datos deben ser
especificados por el modelo de memoria por medio de la directiva
.MODEL
´ àintaxis: .MODEL
´ Modelo Descripción
´ TINY 1 solo segmento para datos y código
´ àMALL 1 solo segmento de datos (64K, incluida
la pila) y otro de código (64K)
´ MEDI0M Varios segmentos de código y 1
de datos
´ COMuACT 1 segmento de código y varios de datos.
´ LARGE varios segmentos de datos y
código (1Mb para cada uno).
| 
 
 
| 
2 àegmento de datos:
´ Contiene una definición y declaración de las variables
´ uuede también hacer una atribución de símbolos para constantes
´ àintaxis .DATA
´ Ejemplo: .DATA
WORD1 DW A8h
BYTE1 DB 5
MENàAGEM DB µEsto es un mensaje¶
2 àegmento de pila:
´ Reserva un bloque de posiciones de memoria consecutivas para
almacenar la pila
´ Debe tener espacio suficiente para soportar la pila en su máximo
tamaño
´ àintaxis .àTACK tamaño
´ Ejemplo: .àTACK 100h ; reserva 100h bytes para el área de pila
| 
 
 
| 
2 àegmento de código
´ Contiene propiamente las instrucciones del programa.
´ Dentro del segmento de código, las instrucciones son organizadas en
procedimientos
´ àintaxis: .CODE
.CODE
nombre uROC
;
;cuerpo de procedimiento
;
Nombre ENDu
donde:
´ Nombre: identificación del procedimiento
´ uROC y ENDu: instrucciones usadas para delimitar el procedimiento
 
2 MOV destino, fuente
´ Transfiere datos entre:
2 Registro y registro

2 Registro y una posición de memoria

2 Mover un numero directamente para un registro o posición de


memoria
2 Operando fuente Operando destino
R. datos R. de segmento R. de memoria

2 R. de datos si si si
2 R. segmentos si no si
2 uosición de memoria si si no
2 Constante si no si


  
 
| |
   |
|  
 
|  | 
|  |  

 |  !6  "#
|   |
 |  
 

   !   6  


 | $|| $ 

$|  ! 6  6|

|$ !   |

 $|  ! %

 $|  ! % 
|| $ ! % &


$ !  6  


$ !6  6  
 !  | 

  |
 |   |
 |
 ! 6   

'  
2 | (define byte); directiva que asigna un espacio de
memoria de 1B.
2 |reserva tantas posiciones del tamaño que se
indique (DB, DW, DD) como indique n
2   (procedure), directiva de procedimiento; debe
tener una etiqueta. 0n procedimiento es un conjunto de
instrucciones diseñadas para cumplir una función
específica.
2  |, directiva de fin de procedimiento. Debe tener la
misma etiqueta de uROC.
2 
, directiva que asocia los registros segmentos
(Cà, Dà, Eà, àà) con segmentos específicos,
asumiendo que el registro segmento es igual a la
etiqueta de segmento (CODIG,DATOà,uILA)
especificada en el programa.
| $
 (
   

2 El archivo .asm es un EDITOR DE
archivo creado con un uROGRAMA
procesador de word o
editor de línea. myfile.asm
2 El ensamblador 8086
convierte las uROGRAMA
instrucciones del archivo ENàAMBLADOR
.asm en lenguaje de
máquina (.obj). Además myfile.lst myfile.obj
crea un archivo .lst.
2 El archivo .lst es uROGRAMA
opcional, contiene la lista COMuILADOR
de todos los opcodes y
direcciones offset, así myfile.exe
como también los errores
detectados.
|  |  
| 

2 FAR , permite controlar variables definidas J  del segmento de
código actual. Las etiquetas son de tipo FAR si el campo de etiqueta
no termina con los dos puntos: en estas etiquetas la instrucción a la
que apunta no se encuentra en el mismo segmento de código sino en
otro. Cuando es referenciada en una transferencia de control se carga
el puntero de instrucciones Iu y el segmento de código Cà (llamadas
intersegmento).
2 NEAR, controla variables definidas 6 del segmento de código
actual. Las etiquetas son de tipo NEAR cuando el campo de etiqueta
finaliza con dos puntos (:).Es decir que cuando realizamos una
llamada sobre dicha etiqueta el ensamblador considera que está
dentro del mismo segmento de código (llamadas intrasegmento) y el
procesador sólo carga el puntero de instrucciones Iu. Téngase en
cuenta que hablamos de instrucciones.
|  |  
| 

2 àALTOà CONDICIONALEà, el control se transfiere a la localidad de
memoria a la que hace referencia la etiqueta, siempre que sea cierta
la condición.
2 àALTOà INCONDICIONALEà
2 CALL, llama a un procedimiento que necesita ejecutarse varias veces
dentro del programa.
  || (| 
2 DB, define un espacio de 2 DW, define una variable de
1byte. 2bytes.
2 D0u, determinado numero 2 DD, define 2palabras.
de caracteres. 2 DQ, define 4palabras.
2 EQ0, define una constante 2 DT, define 10 bytes o
sin ocupar una localidad de paquetes de numero BCD.
memoria.2



| 

)*
|
|  | 
|  |  

 |  !6  "#
 |

 
$+|

|$ !   |

 $| ! %

 $| ! % 
|| $ ! % &


$ !  6  


$ !6  6  
 !  | 
 |
 ! 6   


You might also like