La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PBN - 05 - 1 © Jaime Alberto Parra Plaza CLASE 5 LOS SEGMENTOS.

Presentaciones similares


Presentación del tema: "PBN - 05 - 1 © Jaime Alberto Parra Plaza CLASE 5 LOS SEGMENTOS."— Transcripción de la presentación:

1 PBN - 05 - 1 © Jaime Alberto Parra Plaza CLASE 5 LOS SEGMENTOS

2 PBN - 05 - 2 © Jaime Alberto Parra Plaza PARTES DE UN PROGRAMA EN ENSAMBLADOR: Título Constantes Datos Pila Programa Principal Funciones Final {Opcional} Código

3 PBN - 05 - 3 © Jaime Alberto Parra Plaza Título: Es opcional y sólo sirve como referencia para el programador, su sintaxis es: TITLE texto-del-título Constantes: Corresponden al #define de C. constante EQU valor

4 PBN - 05 - 4 © Jaime Alberto Parra Plaza nombre SEGMENT [opciones] ; cuerpo del segmento nombre ENDS Las opciones permiten al programador indicarle al ensamblador cómo tratar los diferentes segmentos declarados. DECLARACIÓN DE SEGMENTOS:

5 PBN - 05 - 5 © Jaime Alberto Parra Plaza Segmento de Datos: Las variables se declaran indicando el espacio de memoria que ocupan (1 byte, 1 word, 1 double, n bytes, n words): variable tamaño-base valor-inicial

6 PBN - 05 - 6 © Jaime Alberto Parra Plaza Tamaño-base: DB = Declarar byte DW = Declarar word DD = Declarar double Valor-Inicial: Constante que se asignará a la variable al empezar el programa. Si no se requiere un valor inicial se coloca el símbolo de interrogación ?

7 PBN - 05 - 7 © Jaime Alberto Parra Plaza Se puede reservar un bloque de memoria para una variable usando el campo valor-inicial. Hay dos formas: Explícita Implícita

8 PBN - 05 - 8 © Jaime Alberto Parra Plaza Explícita: Se da una lista de valores separados por comas: enteros DB 4, 5, -3, 2, 9 Implícita: Se usa la directiva DUP (duplicar): arregloDB50 DUP (0) matrizDB30 DUP (18 DUP (5)) notasDB40 DUP (3 DUP (0,?))

9 PBN - 05 - 9 © Jaime Alberto Parra Plaza Pila: Se usa el formato: STACK SEGMENT PARA STACK DW n DUP (?) STACK ENDS La n se remplaza por una constante, usualmente 100H es adecuado.

10 PBN - 05 - 10 © Jaime Alberto Parra Plaza Código: Un programa se compone de un conjunto de funciones (llamadas procedimientos en ensamblador) de las cuales sólo una puede asumir el papel de función principal (llamada main en C.)

11 PBN - 05 - 11 © Jaime Alberto Parra Plaza DECLARACIÓN DE UN PROCEDIMIENTO: nombre PROC [opciones] ; cuerpo del procedimiento nombre ENDP

12 PBN - 05 - 12 © Jaime Alberto Parra Plaza Las líneas de un archivo fuente pueden contener los siguientes campos: [etiqueta:] opcode [operandos] [; comentarios] Los corchetes indican los campos que son opcionales. El único campo obligatorio es el de opcode (código de operación) que contiene los mnemónicos antes mencionados.

13 PBN - 05 - 13 © Jaime Alberto Parra Plaza etiqueta: Es una palabra que equivale a la dirección que ocupará esa línea de instrucción al ubicarse en memoria. El número de bytes que ocupa una línea depende de la instrucción que contenga y puede estar entre 1 y 6 bytes. El ensamblador calcula estos valores y crea una tabla para asignar las direcciones apropiadas a cada etiqueta.

14 PBN - 05 - 14 © Jaime Alberto Parra Plaza opcode: Es un mnemónico que representa la instrucción que se ejecutará. Ejemplos: SumaADD MultiplicaciónMUL RestaSUB IncrementoINC Llamar rutinaCALL ComparaciónCMP Salto de instrucciónJMP

15 PBN - 05 - 15 © Jaime Alberto Parra Plaza Operandos: Algunas instrucciones requieren dos operandos, otras uno y otras más ningún operando. Ejemplos: OperaciónRepresentación AX AX + BXADD AX, BX Incrementar CXINC CX Buscar en tablaXLAT

16 PBN - 05 - 16 © Jaime Alberto Parra Plaza CANTIDAD DE OPERANDOS: 2 operandos: se admiten dos operandos origen o se admiten un operando origen y un operando destino. 1 operando: sólo se requiere un operando o se asume uno de los operandos en un sitio en particular. 0 operandos: no requiere operandos o se asumen los operandos en sitios particulares.

17 PBN - 05 - 17 © Jaime Alberto Parra Plaza Comentarios: Éstos son importantes como texto indicativo o explicativo de una instrucción o de una secuencia de instrucciones poco clara. Dado que el ensamblador es por naturaleza críptico, una buena dosis de comentarios es siempre adecuada.

18 PBN - 05 - 18 © Jaime Alberto Parra Plaza Se indica con el formato: END nombre nombre se remplaza por el nombre del procedimiento que se tomará como principal. FIN DEL ARCHIVO:

19 PBN - 05 - 19 © Jaime Alberto Parra Plaza ASIGNACIÓN DE SEGMENTOS: Para que el sistema puede diferenciar si un segmento es de código, datos o pila se debe hacer a dos niveles: –Implícito para el ensamblador –Explícito para el microprocesador

20 PBN - 05 - 20 © Jaime Alberto Parra Plaza DIFERENCIACIÓN DE SEGMENTOS: CÓDIGO: Dentro del segmento vienen procedimientos. DATOS: Dentro del segmento vienen declaraciones que reservan espacio en memoria. PILA: El segmento tiene la opción STACK en su declaración.

21 PBN - 05 - 21 © Jaime Alberto Parra Plaza DIRECTIVA ASSUME: Permite explicitarle al ensamblador cuáles segmentos están siendo usados para qué tareas. Su sintaxis es: ASSUMEReg : Seg [, … ] donde Reg es un registro de segmento y Seg es un nombre de segmento.

22 PBN - 05 - 22 © Jaime Alberto Parra Plaza PARA EL uP - DATOS: Al comienzo del procedimiento principal deben inicializarse los registros así: MOVAX, NombreSegmento MOVReg, AX Siendo Reg = DS ó ES

23 PBN - 05 - 23 © Jaime Alberto Parra Plaza PARA EL uP - CÓDIGO: Al final del archivo, después de la directiva END, se coloca el nombre del procedimiento principal. Con esta información es posible para el ensamblador determinar el valor que debe asignarse al registro IP antes de empezar la ejecución del programa.

24 PBN - 05 - 24 © Jaime Alberto Parra Plaza ¿Cuáles son las opciones que pueden especificarse al declarar un segmento y qué utilidad tiene cada una de ellas? PREGUNTA 5:

25 PBN - 05 - 25 © Jaime Alberto Parra Plaza


Descargar ppt "PBN - 05 - 1 © Jaime Alberto Parra Plaza CLASE 5 LOS SEGMENTOS."

Presentaciones similares


Anuncios Google