2. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
EL ENSAMBLADOR GENERA UNA INSTRUCCIÓN DE LENGUAJE DE MAQUINA. PERO
PARA CADA ENUNCIADO CODIFICADO EN UN LENGUAJE DE ALTO NIVEL, COMO C O
PASCAL, EL COMPILADOR GENERA MUCHAS INSTRUCCIONES DE LENGUAJE DE
MÁQUINA A ETE RESPECTO, PUEDE PENSAR EN UN LENGUAJE DE ALTO NIVEL
COMO CONSISTENTE DE MACRO ENUNCIADOS.
EL ENSAMBLADOR TIENE FACILIDADES QUE EL PROGRAMADOR PUEDE USAR PARA
DEFINIR MACROS. SE DEFINE UN NOMBRE ESPECIFICO PARA LA MACRO, JUNTO
CON EL CONJUNTO DE INSTRUCCIONES EN LENGUAJE ENSAMBLADOR QUE LA
MACRO VA A GENERAR. DESPUÉS SIEMPRE QUE NECESITE CODIFICAR EL
CONJUNTO DE INSTRUCCIONES, SÓLO CODIFIQUE EL NOMBRE DE LA MACRO Y EL
ENSAMBLADOR GENERA DE MANERA AUTOMATICA LAS INSTRUCCIONES QUE
USTED DEFINIÓ.
3. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
LAS MACROS SON ÚTILES PARA LOS SIGUIENTES PROPÓSITOS:
• SIMPLIFICAR Y REDUCIR LA CANTIDAD DE CODIFICACIÓN REPETITIVA.
• REDUCIR ERRORES CAUSADOS POR LA CODIFICACIÓN REPETITIVA.
• LINEALIZAR UN PROGRAMA EN LENGUAJE ENSAMBLADOR PARA
HACERLO MÁS LEGIBLE.
CONSTRUCCIÓN SENCILLA DE UNA MACRO
PARA MACROS QUE SE NECESITAN INCLUIR EN PROGRAMAS, PRIMERO
TIENE QUE DEFINIRLAS (O COPIARLAS DE UNA BIBLIOTECA DE
MACROS). UNA DEFINICIÓN DE MACRO APARECE ANTES QUE
CUALQUIER DEFINICIÓN DE SEGMENTO. LA DEFINICIÓN DE UNA MACRO
SENCILLA QUE INICIALIZA LOS REGISTROS DE SEGMENTO.
4. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
EJEMPLO:
INITZ 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 INITZ, AUNQUE ES ACEPTABLE
CUALQUIER OTRO NOMBRE VÁLIDO QUE SEA ÚNICO. LA DIRECTIVA
MACRO EN LA PRIMER LÍNEA LE INDICA AL ENSAMBLADOR QUE LAS
INSTRUCCIONES QUE SIGUEN, HASTA ENDM (FIN DE LA MACRO), SON
PARTE DE LA DEFINICIÓN DE LA MACRO. LA DIRECTIVA ENDM TERMINA LA
DEFINICIÓN DE LA MACRO. LAS INSTRUCCIONES ENTRE MACRO Y ENDM
COMPRENDEN EL CUERPO DE LA DEFINICIÓN DE LA MACRO.
5. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
USO DE PARAMETROS EN MACROS
PARA HACER UNA MACRO FLEXIBLE, PUEDE DEFINIR NOMBRES EN ELLA
COMO ARGUMENTOS MUDOS (FICTICIOS). LA DEFINICIÓN DE LA MACRO
SIGUIENTE, LAMADA PROMPT, PROPORCIONA EL USO DE LA FUNCIÓN
09H DEL DOS PARA DESPLEGAR CUALQUIER MENSAJE. CUANDO SE USA
LA MACROINSTRUCCIÓN, EL PROGRAMADOR TIENE QUE
PROPORCIONAR EL NOMBRE DEL MENSAJE, EL CUAL HACE
REFERENCIA A UN ÁREA DE DATOS TERMINADA POR UN SIGNO DE
DÓLAR.
PROMPT MACRO MESSGE ; ARGUMENTO MUDO
MOV AH, 09H
LEA DX, MESSGE
INT 21H
ENDM ; FIN DE LA MACRO
6. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
UN ARGUMENTO MUDO EN UNA DEFINICIÓN DE MACRO INDICA AL
ENSAMBLADOR QUE HAGA COINCIDIR SU NOMBRE CON CUALQUIER
APARICIÓN DEL MISMO NOMBRE EN EL CUERPO DE LA MACRO. POR
EJEMPLO, EL ARGUMENTO MUDO MESSGE TAMBIÉN APARECE EN LA
INSTRUCCIÓN LEA.
CUANDO UTILIZA LA MACROINSTRUCCIÓN PROMPT, PROPORCIONA UN
PARAMETRO COMO EL NOMBRE REAL DEL MENSAJE QUE SERÁ
DESPLEGADO, POR EJEMPLO:
PROMPT MESSAGE2
EN ESTE CASO, MESSAGE2 TIENE QUE ESTAR APROPIADAMENTE
DEFINIDO EN EL SEGMENTO DE DATOS. EL PARAMETRO EN LA
MACROINSTRUCCIÓN CORRESPONDE AL ARGUMENTO MUDO EN LA
DEFINICIÓN ORIGINAL DE LA MACRO:
DEFINICIÓN DE MACRO: PROMPT MACRO MESSGE (ARGUMENTO)
MACROINSTRUCCIÓN: PROMPT MESSAGE2 (PARÁMETRO)
7. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
EL ENSAMBLADOR YA HA HECHO CORRESPONDER EL ARGUMENTO EN LA
DEFINICIÓN ORIGINAL DE LA MACRO CON LA INSTRUCCIÓN LEA EN EL
CUERPO DE LA MACRO. AHORA SUSTITUYE EL (LOS) PARAMETRO (S) DE LA
MACROINSTRUCCIÓN MESSAGE2 POR LA PRESENCIA DE MESSGE EN LA
INSTRUCCIÓN LEA Y LA SUSTITUYE POR CUALQUIER OTRA APARICIÓN DE
MESSGE.
COMENTARIOS
PARA CODIFICAR COMENTARIOS EN UNA DEFINICIÓN DE MACRO PARA
CLARIFICAR EL OBJETIVO. UNA DIRECTIVA COMMENT O UN PUNTO Y COMO
INDICAN UNA LÍNEA DE COMENTARIO. EL EJEMPLO SIGUIENTE UTILIZA UN
PUNTO Y COMA PARA INDICAR UN COMENTARIO:
PROMPT MACRO MESSGE
; ESTA MACRO PERMITE DESPLEGAR COMENTARIOS
MOV AH, 09H
LEA DX, MESSGE
INT 21H
ENDM
8. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
USO DE UNA MACRO DENTRO DE UNA DEFINICIÓN DE MACRO
UNA DEFINCIÓN DE MACRO PUEDE TENER UNA REFERENCIA A OTRA MACRO
DEFINIDA. CONSIDERE UNA MACRO SENCILLA LLAMADA DOS21 QUE CARGA UNA
FUNCIÓN EN EL REGISTRO AH Y EMITE LA INT 21H:
DOS21 MACRO DOSFUNC
MOV AH, DOSFUNC
INT 21H
ENDM
USAR ESTA MACRO DOS21 PARA ACEPTAR ENTRADA DESDE EL TECLADO,
CODIFIQUE
LEA DX, NAMEPAR
DOS21 0AH
9. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
EL CÓDIGO GENERADO POR DOS21 CARGARÍA LA FUNCIÓN 0AH EN EL AH Y
EMITIRÍA LA INT 21H PARA ENTRADA DESDE EL TECLADO. AHORA SUPONGA QUE
TIENE OTRA MACRO, LLAMADA DISP, QUE CARGA LA FUNCIÓN 02H DE LA INT 21H EN
EL REGISTRO AH, PARA DESPLEGAR UN CARÁCTER:
DISP MACRO CHAR
MOV AH, 02H
MOV DL, CHAR
INT 21H
ENDM
POR EJEMPLO, PARA DESPLEGAR UN SGNO DE INTERROGACIÓN CODIFIQUE LA
MACRO COMO DISP ´?´ PODRÍA CAMBIAR DISP PARA APROVECHAR LA MACRO
DOS21H PARA HACER REFERENCIA A DOS21 DENTRO DE LA DEFINICIÓN DE DISP:
DISP MACRO CHAR
MOV DL, CHAR
DOS21 02H
ENDM
10. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
EJEMPLO DE UN PROGRAMA EN
ASSEMBLER UTILIZANDO MACROS
INITZ MACRO
MOV AX, @DATA
MOV DS, AX
MOV ES, AX
ENDM
.MODEL SMALL
.STACK 64
.DATA
MESSEGE DB ´TEST OF MACRO
INSTRUCTION´, 13,10,´$´
.CODE
BEGIN PROC FAR
INITZ
MOV AX, @DATA
MOV DS, AX
MOV ES, AX
MOV AH, 09H
LEA DX, MESSGE
INT 21H
MOV AX, 4C00H
INT 21H
BEGIN ENDP
END BEGIN
11. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
LLAMADA A PROCEDIMIENTOS
HASTA AHORA LOS SEGMENTOS DE CÓDIGO HAN CONSISTIDO SÓLO EN UN
PROCEDIMIENTO, CODIFICADO COMO
BEGIN PROC FAR
.
.
BEGIN ENDP
EN ESTE CASO EL OPERANDO FAR INFORMA AL SISTEMA QUE LA
DIRECCIÓN INDICADA ES EL PUNTO DE ENTRADA PARA LA EJECUCIÓN DEL
PROGRAMA, MIENTRAS QUE LA DIRECTIVA ENDP DEFINE EL FINAL DEL
PROCEDIMIENTO . SIN EMBARGO, UN SEGMENTO DE CÓDIGO PUEDE
TENER CUALQUIER NÚMERO DE PROCEDIMIENTOS, TODOS DISTINGUIDOS
POR PROC Y ENDP. UN PROCEDIMIENTO LLAMADO (O SUBRUTINA) ES UNA
SECCIÓN DE CÓDIGO QUE REALIZA UNA TAREA DEFINIDA Y CLARA (TAL
COMO UBICAR EL CURSOR O BIEN OBTENER ENTRADA DEL TECLADO).
12. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
LA ORGANIZACIÓN DE UN PROGRAMA EN PROCEDIMIENTOS
PROPORCIONA LOS BENEFICIOS SIGUIENTES:
• REDUCE LA CANTIDAD DE CÓDIGO, YA QUE UN PROCEDIMIENTO COMÚN
PUEDE SER LLAMADO DESDE CUALQUIER LUGAR EN EL SEGMENTO DE
CÓDIGO.
• FORTALECE LA MEJOR ORGANIZACIÓN DEL PROGRAMA
• FACILITA LA DEPURACIÓN DEL PROGRAMA, YA QUE LOS ERRORES
PUEDEN SER AISLADOS CON MAYOR CLARIDAD.
• AYUDA EN EL MANTENIMIENTO PROGRESIVO DE PROGRAMAS, YA QUE
LOS PROCEDIMIENTOS SON IDENTIFICADOS DE FORMA RÁPIDA PARA SU
MODIFICACIÓN.
LA INSTRUCCIÓN CALL TRANSFIERE EL CONTRL A UN PROCEDIMIENTO
LLAMDADO, Y LA INSTRUCCIÓN RET REGRESA DEL PROCEDIMIENTO
LLAMADO AL PROCEDIMIENTO ORIGINAL QUE HIZO LA LLAMADA. RET DEBE
SER LA ÚLTIMA INSTRUCCIÓN EN UN PROCEDIMIENTO LLAMADO. LOS
FORMATOS GENERALES PARA CALL Y RET SON :
13. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
[ÉTIQUETA:] CALL PROCEDIMIENTO
[ETIQUETA:] RET [INMEDIATO]
EL CÓDIGO OBJETO PARTICULAR QUE CALL Y RET GENERAN DEPENDE
DE SI LA OPERACIÓN IMPLICA UN PROCEDIMIENTO NEAR (CERCANO) O
UN PROCEDIMIENTO FAR (LEJANO).
3.2.1 LLAMADA Y REGRESO CERCANOS.- UNA LLAMADA (CALL) A UN
PROCEDIMIENTO DENTRO DEL MISMO SEGMENTO ES CERCANA Y
REALIZA LO SIGUIENTE:
1. DISMINUYE EL SP EN 2 (UNA PALABRA)
2. METE AL IP (QUE CONTIENE EL DESPLAZAMIENTO DE LA INSTRUCCIÓN
QUE SIGUE AL CALL) EN LA PILA.
3. INSERTA LA DIRECCIÓN DEL DESPLAZAMIENTO DEL PROCEDIMIENTO
LLAMADO EN EL IP (ESTA OPERACIÓN VACÍA EL RESULTADO DE LA
INSTRUCCIÓN PREVIAMENTE PROCESADA).
UN RET QUE REGRESA DESDE UN PROCEDIMIENTO CERCANO REALIZA LO
SIGUIENTE:
14. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
UN RET QUE REGRESA DESDE UN PROCEDIMIENTO CERCANO REALIZA LO
SIGUIENTE:
1. SACA EL ANTIGUA VALOR DE IP DE LA PILA Y LO ENVÍA AL IP (LO CUAL TAMBIÉN
VACÍA EL RESULTADO DE LA INSTRUCCIÓN PREVIAMENTE PROCESADA).
2. INCREMENTA EL SP EN 2.
3.2.2 LLAMADA Y REGRESO LEJANOS.- UNA LLAMADA (CALL) LEJANA LLAMA A UN
PROCEDIMIENTO ETIQUETADO CON FAR, TAL VEZ EN UN SEGMENTO DE CÓDIGO
SEPARADO. UN CALL LEJANO METE A LA PILA AL CS Y AL IP, Y RET LOS SACA DE LA
PILA.
EJEMPLO DE UNA LLAMADA Y REGRESO CERCANOS
UNA ORGANIZACIÓN COMÚN DE LLAMADAS Y REGRESO CERCANOS, SE PUEDE
VISUALIZAR EN EL SIGUIENTE CÓDIGO, EN DONDE EL PROGRAMA ESTA DIVIDIDO
EN UN PROCEDIMIENTO LEJANO, BEGIN Y DOS PROCEDIMIENTOS CERCANOS, B10
Y C10. CADA PROCEDIMIENTO TIENE UN NOMBRE ÚNICO Y CONTIENE SU PROPIO
ENDP PARA FINALIZAR SU DEFINICIÓN.
15. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
.MODEL SMALL
.STACK 64
.DATA
------------------------------------------------
.CODE
BEGIN PROC FAR
CALL B10 ;LLAMADA A B10
; …
MOV AX, 4C00H
INT 21H
BEGIN ENDP
;------------------------------------------------
B10 PRO NEAR
CALL C10 ; LLAMADA A C10
; . . .
RET
B10 ENDP
;------------------------------------------------------
C10 PROC NEAR
; . . .
RET
C10 ENDP
;------------------------------------------------------
END BEGIN
LLAMADA A PROCEDIMIENTOS
17. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
LOS PROGRAMAS QUE SE HAN PRESENTADO HAN CONSISTIDO EN UN
SOLO MÓDULO ENSAMBLADO Y AUTÓNOMO. SIN EMBARGO, ES POSIBLE
DESARROLLAR UN PROGRAMA QUE CONSTE DE UN PROGRAMA
PRINCIPAL ENLAZADO CON UNO O MÁS SUBPROGRAMAS
ENSAMBLADOS POR SEPARADO. HAY VARIAS RAZONES PARA
ORGANIZAR UN PROGRAMA EN SUBPROGRAMAS:
• ENLAZAR LENGUAJES; POR EJEMPLO, COMBINAR LA POTENCIA DEL
CÓMPUTO DE UN LENGUAJE DE ALTO NIVEL CON EL PROCESAMIENTO
EFICAZ DEL LENGUAJE ENSAMBLADOR.
• FACILITAR EL DESARROLLO DE PROYECTOS GRANDES, EN LOS QUE
DIFERENTES EQUIPOS PRODUCEN SUS MÓDULOS POR SEPARADO.
18. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
COMO YA SE MENCIONO CON ANTELACIÓN LOS PROGRAMAS QUE
TIENEN INTERFAZ CON UN PROGRAMA DE ALTO NIVEL DEBEN SER
ENSAMBLADOR Y COMPILADOR DE MANERA INDIVIDUA. EN ESTE CASO
PARTICULAR SE ENSAMBLARAN PROGRAMAS Y LA INTERFAZ SE HARA
CON C.
EXISTEN DIRECTIVAS QUE COADYUVAN AL DESARROLLO DE ESTAS
INTERFACES UNAS DE ESTAS DIRECTIVAS SON: EXTRN, PUBLIC,
INCLUDE.
LA DIRECTIVA EXTRN
LA DIRECTIVA EXTRN INDICA AL ENSAMBLADOR QUE EL ELEMENTO
LLAMADO UN DATO-PROCEDIMIENTO O ETIQUETA-ESTÁ DEFINIDO EN
OTRO ENSAMBLADO.
EL FORMATO GENERAL DE LA DIRECTIVA EXTRN ES:
EXTRN nombre: tipo [,…]
19. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
PUEDE DEFINIR MÁS DE UN NOMBRE, HASTA EL FINAL DE LA LÍNEA, O
BIEN CODIFICAR INSTRUCCIONES ADICIONALES EXTRN. EL OTRO
MÓDULO ENSAMBLADO A SU VEZ DEBE DEFINIR EL NOMBRE E
IDENTIFICARLO COMO PUBLIC.
LA DIRECTIVA PUBLIC
LA DIRECTIVA PUBLIC INDICA AL ENSAMBLADOR Y AL ENLAZADOR QUE
LA DIRECCIÓN DE UN SÍMBOLO ESPECIFICADO DEFINIDO EN EL
ENSAMBLADO ACTUAL ESTÁ DISPONIBLE PARA OTROS MÓDULOS.
EL FORMATO GENERAL PARA PUBLIC ES:
PUBLIC símbolo [,…]
PUEDE DEFINIR MÁS DE UN SÍMBOLO, HASTA EL FINAL DE LA LÍNEA, O
BIEN CODIFICAR INSTRUCCIONES PUBLIC ADICIONALES. LA ENTRADA
SÍMBOLO PUEDE SER UNA ETIQUETA (INCLUYENDO ETIQUETAS PROC).
20. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
PUEDE DEFINIR MÁS DE UN NOMBRE, HASTA EL FINAL DE LA LÍNEA, O
BIEN CODIFICAR INSTRUCCIONES ADICIONALES EXTRN. EL OTRO
MÓDULO ENSAMBLADO A SU VEZ DEBE DEFINIR EL NOMBRE E
IDENTIFICARLO COMO PUBLIC.
LA DIRECTIVA PUBLIC
LA DIRECTIVA PUBLIC INDICA AL ENSAMBLADOR Y AL ENLAZADOR QUE
LA DIRECCIÓN DE UN SÍMBOLO ESPECIFICADO DEFINIDO EN EL
ENSAMBLADO ACTUAL ESTÁ DISPONIBLE PARA OTROS MÓDULOS.
EL FORMATO GENERAL PARA PUBLIC ES:
PUBLIC símbolo [,…]
PUEDE DEFINIR MÁS DE UN SÍMBOLO, HASTA EL FINAL DE LA LÍNEA, O
BIEN CODIFICAR INSTRUCCIONES PUBLIC ADICIONALES. LA ENTRADA
SÍMBOLO PUEDE SER UNA ETIQUETA (INCLUYENDO ETIQUETAS PROC).
21. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
AL REALIZAR LA INTERFACE CON UN LENGUAJE DE ALTO NIVEL, LOS PROGRAMAS
DEBEN SER GUARDADOS EN LA CARPETA DEL BIN DEL BORLAND INCLUSO EL
PROGRAMA CREADO EN C.
LOS PROGRAMAS CREADO EN LENGUAJE ENSAMBLADOR, SE DEBEN ENSAMBLAR
INDIVIDUALMENTE Y GUARDARLOS CON EXTENSIÓN .ASM.
AL MOMENTO DE GENERAR LA INTERFACE DEL SIMBOLO DEL SISTEMA, SE
ESCRIBE EN LA LINEA DE COMANDO COMO SIGUE:
SUPONGAMOS QUE EL BORLAND ESTA CARGADO EN LA UNIDAD C:
C:BORLANDCBIN> BCC (NOMBRE DEL PROGRAMA EN C) (NOMBRE DEL PROGRAMA PRINCIPAL CREADO EN ENSAMBLADOR)
22. INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO TEMAPACHE
EN EL PROGRAMA SIGUIENTE LA INTERFAZ SERÍA:
C:BORLANDCBIN> BCC MENU.C EX08.ASM
PROGRAMA CON INTERFAZ
23. ISC. JANETH OLIVARES CRUZ
BIBLIOGRAFIA
1.-LENGUAJE ENSAMBLADOR Y PROGRAMACION PARA PC IBM
COMPAIBLES
PETER ABEL
ED. PEARSON EDUCACION, 2005
2.-MANUAL DE BOLSILLO DE LENGUAJE ENSAMBLADOR DE DOS Y
BIOS
VERSIÓN EN ESPAÑOL
CATALINA DOMINGUEZ REYES
ADIDSION WESLEY IBEROAMERICANA, 2004
3.-LENGUAJE ENSAMBLADOR (MANUAL DE BOLSILLO)
ALLEN L. W.
ADDISON WESLEY IBEROAMERICANA, 2005
24. ISC. JANETH OLIVARES CRUZ
BIBLIOGRAFIA
CITAS ELECTRONICAS
-www. google. com
-www. monografias.com
-www.itlp.edu.mx
-www.aulafacil.com