DELTA – MASTER FORMACIÓN UNIVERSTARIA C/ Gral. Ampudia, 16 Teléf.: 91 533 38 42 - 91 535 19 32 28003 MADRID FORMULARIO DE: MICROPROCESADORES (UPS) ORGANIZACIÓN DE MEMORIA A0 FFFE FFFF A0-A19 1H BHE Dirección PAR A0 0 IMPAR 1 D8-D15 Direcciones Impares 0H D0-D7 Direcciones Pares BHE Acceso 0 A una WORD que comienza en dirección par. 1 A un byte que está en dirección par por D0-D7 0 A un byte que está en dirección impar por D8-D15 1 NO USADO TIPOS DE DATOS Sin Signo ENTEROS Binario Natural. Tamaños: BCD natural tamaño Byte Con Signo: Convenio de Ca2. Tamaños: Byte Word DobleWord Empaquetado Desempaquetado Byte Word DobleWord DIRECCIONES Lógicas: Es la que manejan los programas. Consta de dos parámetros: segmento y offset, cada uno de ellos de 16 bits. Se suele representar como segmentos:offset. El segmento sirve para identificar la zona de memoria. El offset indica una dirección relativa a esa zona de memoria. Física: Es la que se utiliza para realizar los accesos a memoria mediante el bus de direcciones. En el 8086 es un número fijo de 20 bits. Para calcular la dirección física a partir de la lógica: DIR_FIS = 16 * SEGMENTO + OFFSET REGISTROS Registros de segmento: CS (Code): Apunta al segmento donde se encuentra el programa. DS (Data): Apunta al segmento donde residen los datos del programa. ES (Extra): Registro utilizado en algunas instrucciones de tratamiento de cadenas. SS (Snack): Apunta al segmento donde se encuentra la pila del programa. 1 DELTA – MASTER FORMACIÓN UNIVERSTARIA C/ Gral. Ampudia, 16 Teléf.: 91 533 38 42 - 91 535 19 32 28003 MADRID Registros de propósito general (todos de 16 bits): AX AH AL Acumulador BX BH BL Propósito general o registro base para direccionamiento de memoria CX CH CL Propósito general o contador DX DH DL Propósito general, usualmente utilizado varias instrucciones para direcciones E/S SI Registros índices DI Registro base de la pila BP Puntero de pila. Offset del segmento SS SP Puntero de instrucción. Offset del segmento CS IP Registro de flags del estado del procesador. PSW MODOS DE DIRECCIONAMIENTO Inmediato Directo por registro Directo por valor Indirecto por registro Se da el valor del operando en la propia instrucción Se indica a la instrucción el registro donde está el operando Se indica a la instrucción la dirección del dato Se indica a la instrucción el registro que contiene la dirección de memoria donde está el operando Se indica el registro base y el índice. La dirección total viene dada por la suma de las dos. Instrucciones que no necesitan operando o que vienen implícitos. Indirecto por sumas de registros Implícito DECLARACIÓN DE VARIABLES Sin inicializar Enteros Datos Punteros Strings Múltiples Duplicados Dato DB 11B Sin codificar Codificados Near Far Reales Simples Dato DB ? Str1 DB ‘Prueba’ Str2 DB ‘Prueba’,0 Var1 DB 10 (‘Z’) ESTRUCTURAS DECLARACIÓN DEL TIPO NombreEstructura STRUC {Declaración de campos} NombreEstructura ENDS DECLARACIÓN DE VARIABLES var1 NombreEstructura <> ; sin inicialización var2 NombreEstructura<val1,val2,…> ; con inicialización REGISTROS Se almacenan grupos de bits d una variable. El tamaño depende de los bits necesarios para almacenar los campos con un máximo de 16 bits. Declaración del tipo: NombreRegistro RECORD nomCampo1:anchura{=valor}, nomCampo2:anchura{=valor}… Declaración de variables: Var1 NombreRegistro <> ; sin inicialización Var1 NombreRegistro <val1,val2,…> ; con inicialización MACROS Trozos de código predefinido, que se copia tal cual cuando se realiza la llamada. Es por lo tanto un método más rápido que las rutinas (puesto que no es necesario el paso de parámetros mediante pilas) 2 DELTA – MASTER FORMACIÓN UNIVERSTARIA C/ Gral. Ampudia, 16 Teléf.: 91 533 38 42 - 91 535 19 32 28003 MADRID pero que conlleva el problema de la existencia de etiquetas duplicadas, etc (puesto que el código se copia tal cual). NombreMacro MACRO {param1, param2,…} {Código} ENDM Se puede utilizar la directiva LOCAL para definir etiquetas y variables locales y evitar la repetición (y consiguiente error al ensamblar). SYSTEM CALLS Las System Calls son un mecanismo de acceso al hardware, que proporciona el DOS. A diferencia de otros métodos de acceso que actúan a un nivel más bajo, las System Calls proporcionan mayor independencia del hardware (ya que estas llamadas de sistema son comunes a dispositivos de la misma familia) y por lo tanto otorgan mayor flexibilidad y sencillez a la programación de operaciones sobre los mismos. A cambio de estas características, se pierde rapidez y seguridad sobre el manejo de estos dispositivos. Las System Call se basa en las funciones que proporciona la interrupción 21H. Para acceder a las distintas funciones que proporciona esta interrupción se utiliza el registro AH como sistema d paso d parámetros de la interrupción. Añadido a esto se suelen utilizar ciertos registros como mecanismo de E/S para resultados y parámetros adicionales. 3