390 likes | 580 Views
CLASE 3 SOFTWARE DEL MICROPROCESADOR. Máquina electrónica que está en capacidad de ejecutar una secuencia de instrucciones. Las instrucciones pueden catalogarse en uno de tres grupos: Operación Transferencia Decisión. DEFINICIÓN DE COMPUTADOR:.
E N D
Máquina electrónica que está en capacidad de ejecutar una secuencia de instrucciones. Las instrucciones pueden catalogarse en uno de tres grupos: Operación Transferencia Decisión DEFINICIÓN DE COMPUTADOR:
1. Operación: Tales como suma, multiplicación, comparación, etc. 2. Transferencia: Cuando se desplaza información de un sitio a otro entre los bloques del computador. 3. Decisión: Cuando se altera la secuencia de ejecución normal, ya sea saltando un grupo de instrucciones o ejecutando repetidas veces ese grupo.
Las instrucciones se almacenan en la memoria y se ejecutan por la CPU: MEMORIA CPU Instrucc. 1 Instrucc. 2 . Instrucc. k
Memoria al encender el PC Memoria RAM Memoria ROM BOOT BIOS
Memoria después de cargar el sistema operativo SistemaOperativo Memoria RAM Libre Memoria ROM BOOT BIOS
Memoria después de cargar un programa SistemaOperativo Memoria RAM Programa Datos Libre Memoria ROM BOOT BIOS
Cuando un programa es cargado en memoria, se distribuye en tres secciones, cada una llamada un segmento: Código Datos Pila PROGRAMA, DATOS Y PILA:
El uso normal de cada segmento es: Código ( Listado de instrucciones) Datos (Variables) Pila (Almacenamiento temporal)
Es donde viene la secuencia de instrucciones o programa que va a ejecutar el microprocesador. Cada instrucción se representa por un número binario de 8 bits. SEGMENTO DE CÓDIGO:
Es donde residen las variables que se declaran en un programa como globales, es decir, que no pertenecen a ninguna función en particular. Cada variable ocupa cierta cantidad de bytes, según su tipo. SEGMENTO DE DATOS:
Es un espacio en la memoria en donde el microprocesador puede guardar temporalmente información que requerirá más adelante. También es el sitio en donde se crean temporalmente las variables locales. SEGMENTO DE PILA:
Para acceder a una posmem dentro de uno de estos segmentos, el uP debe usar dos registros: Memoria Inicio de Segmento Dirección Lógica o Efectiva (EA)
Se denomina así a las diversas combinaciones de registros que pueden usarse para direccionar una posmem. Siendo los casos que ella esté en: Segmento de código Segmento de pila Segmento de datos MODOS DE DIRECCIONAMIENTO:
uP MEMORIA CS IP Segmento de Código SEGMENTO DE CÓDIGO:
SEGMENTO DE PILA: uP MEMORIA SS Tope de la pila SP Último valor apilado BP Posmem dentrode la pila Fondo de la pila
uP MEMORIA DS ES Segmento de Datos SI DI BX constante SEGMENTO DE DATOS:
Una posmem puede direccionarse con estas posibilidades: 1. DS : [SI + BX + cte16 ] 2. DS : [DI + BX + cte16 ] 3. ES : [SI + BX + cte16 ] 4. ES : [ DI + BX + cte16 ] Los corchetes ( [ ] ) indican puntero. cte16 = constante de 16 bits de longitud.
El segmento básico se direcciona a través de DS. En tanto que el segmento extra se direcciona a través de ES. La dirección efectiva se obtiene por la sumade tres cantidades: 1. Un registro índice (SI o DI) 2. El registro base (BX) 3. Una constante de, máximo, 16 bits (cte16)
Es usual indicar la suma encerrando en corchetes cada registro: EA = [SI] [BX] [cte16] ó EA = [DI] [BX] [cte16] No es necesario que estén los tres campos en la dirección, de aquí surgen varios submodos de direccionamiento:
SUBMODO DIRECTO: EA = [cte16] La constante representa una posmem y equivale al nombre de una variable en un lenguaje de alto nivel (HLL):
uP dirección DATOS 0H 25H 25H cte16
Acerca del submodo directo cabe anotar que normalmente el programador desconoce el valor de la posmem sobre la cual se ubica la variable a la que quiere acceder. En su lugar, usará el nombre de la variable, y el ensamblador se encargará de remplazar dicho nombre por la posmem cuando haga la traducción, de esta forma, el acceso directo a las variables se hace en idéntica forma que en un HLL.
EA = [SI] ó EA = [DI] ó EA = [BX] El registro usado (SI, DI ó BX) contiene la dirección de la posmem a accesar. Este modo equivale al uso de apuntadores en un HLL: SUBMODO INDIRECTO POR REGISTROS:
uP DATOS SI DI BX
EA = [cte16][BX] La dirección de la posmem a acceder se obtiene de la suma del valor contenido en BX más el valor de la constante. SUBMODO BASADO:
uP DATOS BX cte16
DIRECCIONAMIENTO DE ARREGLOS: El modo BASADO es útil para direccionar arreglos. Cte16 apuntará al inicio del arreglo y BX al elemento a acceder:
uP dirección DATOS 0H 55H 55H AR [0] Variablearreglo AR AR [1] 56H cte16 5CH 07H AR [7] BX
EA = [cte16] [SI] ó EA = [cte16] [DI] SUBMODO INDEXADO: La dirección de la posmem a acceder se obtiene de la suma del valor contenido en el registro índice más el valor de la constante.
uP DATOS SI DI cte16
DIRECCIONAMIENTO DE CADENAS: El modo INDEXADO es ideal para direccionar cadenas. Cte16 apunta al inicio de la cadena y SI ó DI al elemento a acceder:
uP DATOS dirección 0H 32H 32H VariableCadena 33H cte16 8IH 4FH DI
EA = [SI] [BX] [cte16] ó EA = [DI] [BX] [cte16] SUBMODO BASADO-INDEXADO: La dirección de la posmem a acceder se obtiene de la suma del valor contenido en el registro índice más el valor de BX más la constante.
uP DATOS SI DI BX cte16
El modo basado-indexado permite direccionar estructuras o matrices. Cte16 apunta al inicio de la estructura, BX apunta al inicio de una variable compuesta (arreglo o cadena) dentro de la estructura y SI ó DI apunta al elemento a acceder: DIRECCIONAMIENTO DE ESTRUCTURAS O MATRICES:
uP DATOS direcciones 0H arreglo 0 48H 48H 49H cte16 4AH 4BH arreglo 1 06H 4CH 4DH BX arreglo 2 4EH 4FH 01H 50H SI
¿Qué relación existe entre los segmentos que accede el microprocesador y los llamados modelos de memoria que implementan los compiladores de lenguaje C? PREGUNTA 3: