Estructura .COM

22
María Guadalupe Olvera Nolasco Verónica Patricia Pasillas Gutierrez Luz Angélica Sánchez Castruita ESTRUCTURA COM

Transcript of Estructura .COM

Page 1: Estructura .COM

María Guadalupe Olvera NolascoVerónica Patricia Pasillas GutierrezLuz Angélica Sánchez Castruita

ESTRUCTURA COM

Page 2: Estructura .COM

Los archivos COM tienen como máximo 65536 bytes de extensión, que "curiosamente" coinciden con 0FFFFh, que es el máximo valor que puede tener un registro de 16 bits, y es almacenado en memoria inmediatamente después del PSP.

Por lo tanto, cualquier dirección dentro del COM tendrá en común el registro de segmento, y con el de desplazamiento se podrá averiguar el lugar donde se encuentra cualquier cosa en el archivo.

Page 3: Estructura .COM

El registro SP contiene una dirección de 2 bytes abajo de la memoria máxima disponible para el programa, lo que significa que hay 64 KB de espacio disponible para el programa, SP = 0FFFEh.

Esto se debe a que DOS siempre coloca un CERO en la pila antes de transferir el control al programa .COM.

Page 4: Estructura .COM

Lineamientos para programas .COM

1. Un programa .COM solamente puede ocupar un espacio máximo de memoria de 64 KB. (Un segmento.)2. La definición del segmento es muy simple, ya que solo puede usarse un segmento.3. Todos los registros de segmento son inicializados en el mismo segmento.4. Deberá usarse la directiva ORG para iniciar en el byte 256 (100h), de tal manera de dejar espacio para el PSP, elcual es cargado en memoria de manera automática en el momento de cargar el programa.5. Si el programa contiene DATOS, éstos no deberán ser ejecutados, se podrá usar la instrucción JMP de tal formade brincarlos. También se pueden colocar dichos datos al final del programa después de la instrucción de retorno alDOS.

Page 5: Estructura .COM
Page 6: Estructura .COM

Formato para Estructura Estándar.

Page 7: Estructura .COM

Sintaxis de la declaración de un segmento

Sintaxis de SEGMENTnombre-seg SEGMENT

- - -sentencias- - -

nombre_seg ENDS

El programa debe terminar con: END etiqueta En este caso la etiqueta se llama inicio, también se pone seguida de (:) en la primer línea de código del programa.

Page 8: Estructura .COM

Sintaxis del las instrucciones en Lenguaje Ensamblador.

[etiqueta] mnemónico [operandos] [; comentarios]

Donde:assume: Habilita la verificación de error para valores de registros. Establece la relación entre un registro de segmento y un segmento.

Sintaxis:assume SEG_REG:NOM_SEG,...

org Directiva que pone el IP en el valor de expresión.

Sintaxis:org expresión

Page 9: Estructura .COM

jmp Instrucción de salto incondicional.Sintaxis:

jmp etiqueta- - -etiqueta:

mov Instrucción de transferencia de información de un operando fuente a un operando destino.

Sintaxis:mov oper_des, oper_fuente

int Instrucción que llama a ejecución a una interrupción de un byte

Sintaxis:int # interrupción

Page 10: Estructura .COM

El Llamado a una Interrupción.

En un programa se llaman a algunas interrupciones, para ello se requiere conocer la sintaxis de llamado a estassubrutinas. Por ejemplo:

INT 21h Función 4Ch: Regresa al DOS con código de retorno

Entrada: AH = 4ChAL = Valor regresado.

Use INT 21h función 4Ch para terminar un programa. Puede regresar un valor al programa padre en el registro AL..Normalmente se regresa un CERO (00h) cuando el programa termina sin problemas.

Page 11: Estructura .COM

Ejemplo de un programa .COM. usando Estructura Estándar.

Page 12: Estructura .COM
Page 13: Estructura .COM
Page 14: Estructura .COM

OBSERVACIONES.- El programa escribe la palabra Angelica,Lupita,Veronica.- El programa consta de un solo segmento, el de código.- El operador OFFSET nos permite escribir la dirección de la variable Dato al registro DX.Para envía la palabra Angelica,Lupita,Veronica., utilizamos una rutina definida por el DOS en la interrupción 21h, es lafunción 09h, la cual se define y llama de la siguiente manera:INT 21h Función 09h: Imprime una cadena de caracteres sobre la pantalla.Entrada: AH = 09hDS:DX = Dirección de inicio de la cadena.La función 09h es muy fácil de usar, para utilizarla coloque la cadena en memoria y termínela con un signo depesos ($), esto significa que no se puede incluir este signo como parte de la cadena, la dirección del inicio de la cadena escolocada en los registros DS:DX

Page 15: Estructura .COM

Estructura Simplificada.

Los ensambladores de Microsoft y Borland en su versiones actuales ofrecen ciertas facilidades que nos simplifican la creación de archivos fuente en lenguaje ENSAMBLADOR, a este método le llamaremos Estructura Simplificada, la cual además de facilitarnos la tarea, hace que la estructura del programa sea compatible con los lenguajes de alto nivel estándares.

Tal vez al presentar el método parezca en principio un poco mas elaborado, que el anterior, pero una vezdominándolo es más simple, sobre todo cuando se trabaja con programas .EXE.

Page 16: Estructura .COM
Page 17: Estructura .COM

En el esqueleto es necesario primero definir el modelo de memoria a utilizar, de la misma forma que se hace en los lenguajes de alto nivel; en este caso usamos el modelo Small. Su definición se hace mediante la directiva .MODEL (note que el punto es parte del nombre del identificador).

El segmento de código (en este caso es el único), se define mediante la directiva .CODE, se establece el punto de entrada al código mediante la etiqueta inicio:, la cual va también después del END final. El retorno al DOS se hace mediante la misma función del DOS: 4Ch

Page 18: Estructura .COM

Veamos el siguiente ejemplo el programa ENSA01A.ASM; en este programa usamos 2 nuevas directivas:

TITLE Establece el nombre del programa al inicio de cada hoja en el archivo .LST.

COMMENT Nos permite escribir comentarios en varios renglones, utilizando solo dos delimitadores cualquiera, uno al inicio del comentario y el mismo al final.

Page 19: Estructura .COM
Page 20: Estructura .COM
Page 21: Estructura .COM
Page 22: Estructura .COM