Descarga de transparencias del tema 5

Anuncio
Tema 5. Formato de instrucciones. Directivas, instrucciones
de cadena y programas de varios módulos
Laboratorio de Estructura y
Organización de Computadores
Grados en Ingeniería Informática e
Ingeniería de Computadores
Curso
Curso 2012-2013
2010-2011
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Índice
 
 
 
 
 
Formato de instrucciones. Ejemplos.
Instrucciones para operar con cadenas
Directivas o pseudoinstrucciones
Programas medios en ensamblador
Ensamblado de varios módulos
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
2 / 33
1
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Formato de instrucciones i80x86/8088 (I)
 
Cuenta con múltiples formatos cuyo código máquina va desde un
byte hasta seis bytes
Formato de las instrucciones registro-registro y registro-memoria:
Byte 1
Código
Byte 2
DW Mod Reg
Byte 3
Byte 4
R/M
Desplazamiento o dato inmediato
Especifica un operando como registro
Código de
operación
Especifica el otro operando como
registro o memoria
Determina el tamaño de los operandos 0 para media palabra, 1 para palabra
Determina el operando fuente y destino 0 operando reg origen, 1 operando reg destino
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Estructura de Computadores Trans.:
I. T. I. de Gestión / Sistemas 3 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Formato de instrucciones i80x86/8088 (II)
 
El primer byte contiene:
–  Código de operación
– 
El bit de dirección de registro (D):
  Si D = 1 tengo que REG = operando destino
  Si D = 0 tengo que REG = operando fuente
– 
El bit de tamaño del dato (W): especifica si la operación será
realizada sobre datos de media palabra o de una palabra:
  Si W = 0 los datos son de 8 bits (ó 16 bits)
  Si W = 1 los datos son de 16 bits (ó 32 bits)
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Estructura de Computadores Trans.:
I. T. I. de Gestión / Sistemas 4 / 33
2
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Formato de instrucciones i80x86/8088 (III)
 
El segundo byte contiene los operandos
(uno de ellos es un registro):
REG se usa para identificar un registro
 
MOD indica el modo de direccionamiento
 
REG
W=0
W=1
000
001
010
011
100
101
110
111
AL
CL
DL
BL
AH
CH
DH
BH
AX
CX
DX
BX
SP
BP
SI
DI
MOD Función:
00
01
10
11
Modo memoria sin desplazamiento
Modo memoria con desplazamiento de media palabra
Modo memoria con desplazamiento de una palabra
Modo registro
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Estructura de Computadores Trans.:
I. T. I. de Gestión / Sistemas 5 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Formato de instrucciones i80x86/8088 (y IV)
 
 
 
El segundo byte contiene los operandos (continuación):
R/M se usa para identificar un registro o una posición de memoria y
depende del valor del campo MOD
D8 es un desplazamiento de tamaño media palabra (8 ó 16 bits) y D16
es un desplazamiento de tamaño palabra (16 bits ó 32 bits)
MOD = 11
CALCULO DE LA DIRECCION EFECTIVA
R/M W=0 W=1 R/M
MOD = 00
000
AL
AX 000
[BX]+[SI]
001 CL
CX 001
[BX]+[DI]
010 DL
DX 010
[BP]+[SI]
011
BL
BX 011
[BP]+[DI]
100 AH
SP 100
[SI]
101 CH
BP 101
[DI]
110 DH
SI
110 direccion directa
111 BH
DI
111
[BX]
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
MOD = 01
MOD = 10
[BX]+[SI]+D8 [BX]+[SI]+D16
[BX]+[DI]+D8 [BX]+[DI]+D16
[BP]+[SI]+D8 [BP]+[SI]+D16
[BP]+[DI]+D8 [BP]+[DI]+D16
[SI]+D8
[SI]+D16
[DI]+D8
[DI]+D16
[BP]+D8
[BP]+D16
[BX]+D8
[BX]+D16
Estructura de Computadores Trans.:
I. T. I. de Gestión / Sistemas 6 / 33
3
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Instrucciones de manejo de cadenas (I)
 
 
 
 
 
Nombre:
Formato:
MOVS / MOVSB / MOVSW (MOV BYTE / WORD STRING)
MOVS destino, fuente
MOVSB / MOSW
Descripción: Transfiere el byte o la palabra apuntada por DS:SI al byte
o palabra apuntada por ES:DI. Después de la transferencia, SI y DI se
incrementan o decrementan, según el valor del indicador DF (DF=0 
incremento; DF=1  decremento), el número de bytes transferidos.
Para la repetición puede ir precedida por REP.
Operandos: destino, fuente se emplean como referencia, pues por
defecto MOVS emplea ES:DI como destino y DS:SI como fuente.
Ejemplos:
–  movsb
–  movs tabla1, tabla2
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
7 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Instrucciones de manejo de cadenas (II)
 
 
 
 
 
Nombre: LODS / LODSB / LODSW (Load BYTE / WORD to AL / AX)
Formato: LODS fuente
LODSB/LODSW
Descripción: carga de un byte o de una palabra de una cadena.
Transfiere un byte o una palabra de una cadena apuntada por DS:SI al
acumulador AL o AX. Después incrementa o disminuye SI, según el
estado del indicador DF, en 1 (byte) o en 2 (palabra).
Operandos: fuente se emplean como referencia, pues por defecto LODS
emplea DS:SI como fuente.
Ejemplos:
–  lods cadena
–  lodsb
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
8 / 33
4
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Instrucciones de manejo de cadenas (III)
 
 
 
 
 
Nombre: STOS / STOSB / STOSW (Store BYTE / WORD from AL / AX)
Formato:
STOS destino
STOSB/STOSW
Descripción: almacenamiento de un byte o de una palabra en una
cadena. Transfiere un byte (AL) o una palabra (AX) a una cadena
apuntada por ES:DI. Después de la ejecución se incrementa o disminuye
DI, según el estado del indicador DF, en 1 (byte) o en 2 (palabra). Para la
repetición puede ir precedida por REP.
Operandos: destino se emplean como referencia, pues por defecto STOS
emplea ES:DI como destino.
Ejemplos:
–  stos cadena
–  stosw
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
9 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Instrucciones de manejo de cadenas (IV)
 
 
 
 
 
Nombre:
Formato:
CMPS / CMPSB / CMPSW (Compare BYTE / WORD)
CMPS destino, fuente
CMPSB/CMPSW
Descripción: Comparación de bytes o palabras de cadenas. Actúan
como CMP pero con cadenas apuntadas por DS:SI para la fuente y
ES:DI para el destino (atención fuente-destino). Después de la
comparación, SI y DI son incrementados (DF=0) o decrementados
(DF=1). Puede ir precedida por REP.
Operandos: destino, fuente se emplean como referencia, pues por
defecto CMPS emplea ES:DI como destino y DS:SI como fuente.
Ejemplos:
–  cmps cadena1, cadena2
–  cmpsb
–  cmpsw
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
10 / 33
5
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Instrucciones de manejo de cadenas (V)
 
 
 
 
 
Nombre:
Formato:
SCAS / SCASB / SCASW (Scan BYTE / WORD)
SCAS destino
SCASB/SCASW
Descripción: análisis de un byte o de una palabra de una cadena.
Ejecuta la substracción AL-destino para un byte, o AX-destino para
una palabra. No almacena el resultado, pero posiciona los flags. Esto
permite comparar los bytes o palabras sucesivas de una cadena.
Puede ir precedida de REP para la repetición. ES:DI apunta a la
cadena destino.
Operandos: destino se emplean como referencia, pues por defecto
SCAS emplea ES:DI como destino.
Ejemplos:
–  scas cadena
–  sacsb
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
11 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Instrucciones de manejo de cadenas (y VI)
 
 
 
 
 
 
 
Nombre:
REP / REPZ / REPE / REPNZ / REPNE (Repeat)
Formato: REP / REPZ / REPE / REPNZ / REPNE instrucción de cadena
Descripción: Prefijo que impone la repetición de una instrucción de
cadena mientras que el contenido del contador CX, disminuido en cada
pasada, no llegue a cero o el flag de cero cambie de estado. Esta
repetición puede ser incondicional (REP) o condicional (REPZ / REPE
hasta ZF=1 o REPNZ / REPNE hasta ZF=0).
Operandos: no tiene
Restricciones: solo aplicable a instrucciones de cadena
REP se usa con MOVS y STOS; REPE, REPZ, REPNE y REPNZ se usan
con CMPS y SCAS
Ejemplo:
–  rep movsb
; rep como prefijo
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
12 / 33
6
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (I)
También llamadas pseudo-instrucciones o pseudo-operaciones
No son como las sentencias “ejecutables” de los lenguajes de alto
nivel, sino que sirven para reservar espacio de almacenamiento,
asignar nombres a constantes, formar estructuras de datos, etc.
No son órdenes destinadas al microprocesador, sino al programa
ensamblador.
Se pueden dividir en cuatro grupos funcionales:
–  Directivas de datos
–  Directivas condicionales
–  Directivas de listado
–  Directivas de macros
 
 
 
 
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
13 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (II)
Directivas de datos (I) Definir símbolos (I)
 
Nombre:
EQU (EQUIVALENT)
 
Formato:
nombre EQU expresión
 
Descripción: asigna un nombre simbólico al valor de una
expresión. El “nombre” no puede redefinirse a lo largo del
programa.
 
Ejemplo:
–  columnas EQU 80
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
14 / 33
7
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (III)
Directivas de datos (II) Definir símbolos (y II)
 
Nombre:
=
 
Formato:
nombre = expresión
 
Descripción: asigna un nombre simbólico al valor de una expresión.
El “nombre” puede redefinirse a lo largo del módulo fuente. Útil en
macros.
 
Ejemplos:
–  valor = 10
–  valor = valor + 1
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
15 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (IV)
Directivas de datos (III) Definir datos (I)
 
 
 
 
 
Nombre:
DB (DEFINE BYTE)
Formato:
[nombre_variable] DB expresión
Descripción: reserva memoria para una variable de tipo byte (8 bits) y
los posteriores. “nombre_variable” es opcional y es el nombre asignado
al primer byte.
Operandos: “expresión” es el valor inicial de la variable y puede ser:
–  Una constante positiva o negativa o expresión de ellas (-128 ≤
expresión ≤127 con signo).
–  Un signo “?” que indica indefinición de valor.
–  Una cadena de caracteres delimitada por comillas simples o dobles.
–  n1 DUP (n2) que indica repetición n1 veces de la expresión n2.
Ejemplos:
–  valores DB 30, -15, 20
- Datos DB 10 DUP(0)
–  DB 12*3
- cadena DB “Hola mundo”
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
16 / 33
8
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (V)
Directivas de datos (IV) Definir datos (II)
 
 
 
 
 
Nombre:
DD (DEFINE DOUBLE)
Formato:
[nombre_variable] DD expresión
Descripción: reserva memoria para una variable de tipo doble palabra
(32 bits) y los posteriores. “nombre_variable” es opcional y es el nombre
asignado a la primera doble palabra.
Operandos: “expresión” es el valor inicial de la variable y puede ser:
–  Una constante positiva o negativa o expresión de ellas.
–  Un signo “?” que indica indefinición de valor.
–  Una dirección completa de memoria (segmento y desplazamiento).
–  n1 DUP (n2) que indica repetición n1 veces de la expresión n2.
Ejemplos:
–  valores DD 300, -150, 2000
–  DD 120*3
–  Direc DD tabla
; donde tabla equivale a su dirección
– 
;completa (segmento:desplazamiento)
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
17 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (VI)
Directivas de datos (V) Definir datos (III)
 
 
 
Nombre:
DQ (DEFINE QUADWORD)
Formato:
[nombre_variable] DQ expresión
Descripción: reserva memoria para una variable de tipo cuádruple
palabra (64 bits) y los posteriores. “nombre_variable” es opcional y es el
nombre asignado a la primera cuádruple palabra.
 
Operandos: “expresión” es el valor inicial de la variable y puede ser:
–  Una constante positiva o negativa o expresión de ellas .
–  Un signo “?” que indica indefinición de valor.
–  n1 DUP (n2) que indica repetición n1 veces de la expresión n2.
 
Ejemplos:
–  valores DQ 300, -150, 2000
–  DQ 120*3
–  datos
DQ 4 DUP (0) ; Equivale a DQ 0, 0, 0 , 0
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
18 / 33
9
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (VII)
Directivas de datos (VI) Definir datos (IV)
 
 
 
Nombre:
DT (DEFINE TENBYTE)
Formato:
[nombre_variable] DT expresión
Descripción: reserva diez bytes de memoria para almacenar dígitos
decimales empaquetados (dos dígitos por byte). El primer byte se
reserva para el signo y los otros 9 para almacenar 18 dígitos
decimales. El signo se almacena como 00h (si positivo) o 80h (si
negativo). “nombre_variable” es opcional y es el nombre asignado al
primer byte.
 
Operandos: “expresión” es el valor inicial de la variable y puede ser:
–  Una constante positiva o negativa o expresión de ellas .
–  Un signo “?” que indica indefinición de valor.
–  n1 DUP (n2) que indica repetición n1 veces de la expresión n2.
 
Ejemplos:
–  valores
–  negat
DT 0123456789
DT -0123456789
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
19 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (VIII)
Directivas de datos (VII) Definir datos (y V)
 
 
 
Nombre:
DW (DEFINE WORD)
Formato:
[nombre_variable] DW expresión
Descripción: reserva memoria para una variable de tipo palabra (16
bits) inicializando o no esa palabra y las posteriores. “nombre_variable”
es opcional y es el nombre asignado a la primera palabra.
 
Operandos: “expresión” es el valor inicial de la variable y puede ser:
–  Una constante positiva o negativa o expresión de ellas.
–  Un signo “?” que indica indefinición de valor.
–  El desplazamiento de una variable
–  n1 DUP (n2) que indica repetición n1 veces de la expresión n2.
 
Ejemplos:
–  valores DW 300, -150, 2000
–  DW 120*3
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
20 / 33
10
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (IX)
Directivas de datos (VIII). Referencias externas (I)
 
Nombre: PUBLIC
 
Formato: PUBLIC símbolo
 
Descripción: permite que los símbolos especificados
sean accesibles por otros módulos durante un enlazado
conjunto (LINK). El módulo que quiere invocar al símbolo
debe contener la sentencia EXTRN.
 
Ejemplo:
–  PUBLIC dato
–  dato DB 23h
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
21 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (X)
Directivas de datos (IX). Referencias externas (y II)
 
Nombre: EXTRN
 
Formato: EXTRN símbolo: tipo
 
Descripción: identifica a los símbolos que fueron
definidos (y declarados PUBLIC) en otro módulo.
 
Ejemplo:
–  EXTRN dato:byte
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
22 / 33
11
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XI)
Directivas de datos (X). Definir segmentos (I)
 
 
 
Nombre:
SEGMENT
Formato: nombre SEGMENT [alineamiento] [combinación ]
Descripción: indica el comienzo del segmento “nombre”. El final del
segmento se indica mediante la directiva ENDS. El nombre de ambas
directivas debe ser el mismo.
 
Alineamiento (opcional):
–  BYTE
–  WORD
–  PARA
–  PAGE
 
Ejemplo:
–  datos SEGMENT
–  datos ENDS
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
 
Combinación (opcional):
–  PUBLIC
–  COMMON
–  AT
–  STACK
–  MEMORY
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
23 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XII)
Directivas de datos (XI). Definir segmentos (II)
 
Nombre: ENDS (END SEGMENT)
 
Formato: nombre_segmento ENDS
 
Descripción: indica el final del segmento
“nombre_segmento” o bien indica el final de la estructura
“nombre_estructura”.
 
Operandos: nombre_segmento es obligatorio
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
24 / 33
12
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XIII)
Directivas de datos (XII). Definir segmentos (y III)
 
Nombre:
ASSUME
 
Formato:
ASSUME registro_segmento:nombre_segmento
 
Descripción: indica al ensamblador el registro de segmento que
va a utilizar para direccionar cada segmento dentro del módulo.
 
Operandos: “registro_segmento”: DS, CS, SS o ES
“nombre_segmento”: generalmente el nombre asignado mediante
la directiva SEGMENT.
 
Ejemplo:
–  ASSUME CS:codigo
–  ASSUME ES:@DATA
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
25 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XIV)
Directivas de datos (XIII) Definir procedimientos(I)
 
Nombre:
PROC (PROCEDURE)
 
Formato:
nombre_procedimiento PROC [atributo]
 
Descripción: indica el comienzo del procedimiento
“nombre_procedimiento”. Los procedimientos deben finalizar con
la directiva ENDP
 
Operandos: atributo = NEAR o FAR (si no se pone nada se
supone NEAR)
 
Ejemplo:
–  rutina PROC
–  rutina ENDP
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
26 / 33
13
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XV)
Directivas de datos (XIV) Definir procedimientos(II)
 
Nombre: ENDP (END PROCEDURE)
 
Formato: nombre_procedimiento ENDP
 
Descripción: indica el final de un procedimiento
 
Operandos: nombre_procedimiento es obligatorio
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
27 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XVI)
Directivas de datos (XV). Definir macros (I)
 
Nombre: MACRO
 
Formato: nombre_macro MACRO lista de parámetros
 
Descripción: especifica el nombre y los parámetros de la
macro. Los parámetros se separan por comas. El final de
la macro se especifica mediante la directiva ENDM.
 
Ejemplo:
–  sumar MACRO operando1, operando2, resultado
– 
cuerpo de la macro
–  ENDM
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
28 / 33
14
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XVII)
Directivas de datos (XVI). Definir macros (II)
 
Nombre: ENDM (END MACRO)
 
Formato: ENDM
 
Descripción: indica el final de una macro
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
29 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XVIII)
Directivas de datos (XVII). Definir macros (y III)
 
Nombre:
LOCAL
 
Formato: LOCAL etiqueta
 
Descripción: indica al ensamblador las etiquetas que debe cambiar
cada vez que se expande la macro. Con ello se evita las definiciones
múltiples de estas etiquetas. LOCAL sólo puede usarse dentro de la
definición de una macro.
 
Ejemplo:
retardo MACRO numero
LOCAL seguir
mov cx, numero
seguir: loop seguir
ENDM
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
30 / 33
15
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XIX)
Directivas de datos (XVIII). Definir bloques
Nombre:
STRUC (STRUCTURE)
Formato: nombre_estructura STRUC
Descripción: define una plantilla de campos a nivel de bytes. Es una
forma de definir nuevos tipos de datos. La definición de una estructura
comienza con la directiva STRUC y acaba con ENDS. En la definición
de la estructura no se reserva memoria. La forma de acceder a cada
campo de la estrutura es: nombre_estructura.campo.
Operandos: las directivas estándar de definición de datos son: DB,
DW, DD, DQ y DT.
 
 
 
 
Ejemplo:
parametros
p1
p2
parametros
 
STRUC
dw ?
db ?
ENDS
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
31 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XX)
Directivas de datos (XIX) Control MASM (I)
 
Nombre: END
 
Formato: END [expresión]
 
Descripción: indica el final del programa fuente. El
operando “expresión” indica la dirección de comienzo del
programa fuente. En el caso de varios módulos fuentes
que se enlazan juntos para formar un solo programa
ejecutable, sólo el módulo principal puede especificar
expresión.
 
Ejemplo: END inicio
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
32 / 33
16
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XXI)
Directivas de datos (y XX). Control MASM (y II)
 
Nombre: .RADIX
 
Formato: .RADIX expresión
 
Descripción: sirve para cambiar la base de numeración por
defecto. Por defecto, los números sin sufijo se considera
que están en base 10. Expresión está siempre en base 10.
 
Ejemplo: .RADIX 16
; base 16 (hexadecimal) por defecto
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
33 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (XXII)
Directivas condicionales
 
 
 
Sirven para que el ensamblador incluya o ignore porciones de
programa fuente según una condición en tiempo de ensamblaje.
IFxxx [condición]
...
ELSE
...
ENDIF
Puede incluirse o no la sentencia ELSE
Ejemplo:
–  PRUEBA = 0
–  IF PRUEBA EQ 0
–  ...
; Instrucciones que sólo se utilizan en pruebas
–  ...
–  ENDIF
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
34 / 33
17
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Las directivas (y XXIII)
Directivas de listado
 
 
Indican al ensamblador la información a obtener en el
listado de salida y el formato de esa información.
Se clasifican a su vez en:
–  De formato del listado:
  PAGE, TITLE, SUBTTL
–  De listado de macros:
  .LALL: lista macros y expansiones
  .SALL: suprime listado de macros y expansiones
–  Comentarios:
  COMMENT
–  Mensajes:
  %OUT: emite un mensaje por pantalla durante el
ensamblado
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
35 / 33
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Ensamblado de varios módulos (I)
 
 
Para enlazar programas formados por varios módulos fuente, se usan
las directivas EXTRN y PUBLIC para las etiquetas compartidas
Una vez creados los módulos objetos la sintaxis del link será:
LINK [opciones] módulos_objeto, [ejecutable];
Todo.exe
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
36 / 33
18
Tema 5: Formato de instrucciones. Directivas, inst.de cadena y prog. de varios mód.
Ensamblado de varios módulos (y II)
Extrn leer: far
Programa 2
Programa 1
(continuación) Extrn variable: byte
int 21h
Public texto2
mov variable, al
Public variable
call leer
Public Leer
ret
Dosseg
lea dx, texto2,
Dosseg
Leer endp
.model small
mov ah, 9
.model small
End
.stack 100h
int 21h
.stack 100h
.data
Mov dl, variable
.data
Programa 1
Extrn texto2: byte
texto db ‘Pulsa tecla$’ Mov ah, 2
Int 21h
variable db ?
.code
mov ah,4Ch
Programa 2
(continuación)
texto2db ‘Has pulsado$’
.code
Leer proc far
Para ensamblar el programa
inicio: mov ax, @data int 21h
End inicio
mov ds, ax
mov ax, @data
Masm prg1;
mov ds, ax
Masm prg2
lea dx, texto
mov ah, 1
Link prg1 prg2, todo
mov ah, 9
int 21h
Departamento de Automática
Área de Arquitectura y Tecnología de Computadores
Laboratorio de Estr. y Org. de Computadores
Grados en I. Informática / I. de Computadores
Trans.:
37 / 33
19
Descargar