Post on 20-Feb-2015
PBN - 03 - 1© Jaime Alberto Parra Plaza
CLASE 3
SOFTWARE DEL MICROPROCESADOR
PBN - 03 - 2© Jaime Alberto Parra Plaza
DEFINICIÓN DE COMPUTADOR:
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
PBN - 03 - 3© Jaime Alberto Parra Plaza
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.
PBN - 03 - 4© Jaime Alberto Parra Plaza
Las instrucciones se almacenan en la memoria y se ejecutan por la CPU:
MEMORIA
CPU Instrucc. 1
Instrucc. 2
.
Instrucc. k
PBN - 03 - 5© Jaime Alberto Parra Plaza
BOOT
BIOS
Memoria
RAM
Memoria
ROM
Memoria al encender el PC
PBN - 03 - 6© Jaime Alberto Parra Plaza
Memoria después de cargar el sistema operativo
BOOT
BIOS
Libre
SistemaOperativo
Memoria
RAM
Memoria
ROM
PBN - 03 - 7© Jaime Alberto Parra Plaza
BOOT
Datos
BIOS
Programa
Libre
SistemaOperativo
Memoria
RAM
Memoria
ROM
Memoria después de cargar un programa
PBN - 03 - 8© Jaime Alberto Parra Plaza
PROGRAMA, DATOS Y PILA:
Cuando un programa es cargado en memoria, se distribuye en tres secciones, cada una llamada un segmento:
• Código
• Datos
• Pila
PBN - 03 - 9© Jaime Alberto Parra Plaza
El uso normal de cada segmento es:
Código ( Listado de instrucciones)
Datos (Variables)
Pila (Almacenamiento temporal)
PBN - 03 - 10© Jaime Alberto Parra Plaza
SEGMENTO DE CÓDIGO:
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.
PBN - 03 - 11© Jaime Alberto Parra Plaza
SEGMENTO DE DATOS:
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.
PBN - 03 - 12© Jaime Alberto Parra Plaza
SEGMENTO DE PILA:
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.
PBN - 03 - 13© Jaime Alberto Parra Plaza
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)
PBN - 03 - 14© Jaime Alberto Parra Plaza
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:
PBN - 03 - 15© Jaime Alberto Parra Plaza
SEGMENTO DE CÓDIGO:
uP MEMORIA
IPCS
Segmento
de Código
PBN - 03 - 16© Jaime Alberto Parra Plaza
MEMORIAuP
SS
SP
BP
Tope de la pila
Último valor apilado
Posmem dentrode la pila
Fondo de la pila
SEGMENTO DE PILA:
PBN - 03 - 17© Jaime Alberto Parra Plaza
SEGMENTO DE DATOS:
DSES
SIDIBX
constante
Segmento
de Datos
MEMORIAuP
PBN - 03 - 18© Jaime Alberto Parra Plaza
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.
PBN - 03 - 19© Jaime Alberto Parra Plaza
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 suma de tres cantidades:
1. Un registro índice (SI o DI)
2. El registro base (BX)
3. Una constante de, máximo, 16 bits (cte16)
PBN - 03 - 20© Jaime Alberto Parra Plaza
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:
PBN - 03 - 21© Jaime Alberto Parra Plaza
SUBMODO DIRECTO:
EA = [cte16]
La constante representa una posmem y
equivale al nombre de una variable en un
lenguaje de alto nivel (HLL):
PBN - 03 - 22© Jaime Alberto Parra Plaza
uPDATOS
25Hcte16
0H
25H
dirección
PBN - 03 - 23© Jaime Alberto Parra Plaza
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.
PBN - 03 - 24© Jaime Alberto Parra Plaza
SUBMODO INDIRECTO POR REGISTROS:
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:
PBN - 03 - 25© Jaime Alberto Parra Plaza
uP DATOS
SI
DI
BX
PBN - 03 - 26© Jaime Alberto Parra Plaza
SUBMODO BASADO:
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.
PBN - 03 - 27© Jaime Alberto Parra Plaza
uP DATOS
BX
cte16
PBN - 03 - 28© Jaime Alberto Parra Plaza
El modo BASADO es útil para direccionar arreglos.
Cte16 apuntará al inicio del arreglo y BX al
elemento a acceder:
DIRECCIONAMIENTO DE ARREGLOS:
PBN - 03 - 29© Jaime Alberto Parra Plaza
AR [0]AR [1]
AR [7]
55H56H
5CH
uP DATOS dirección
0H
55Hcte16
07HBX
Variablearreglo AR
PBN - 03 - 30© Jaime Alberto Parra Plaza
SUBMODO INDEXADO:
EA = [cte16] [SI] ó EA = [cte16] [DI]
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.
PBN - 03 - 31© Jaime Alberto Parra Plaza
uP DATOS
SI
DI
cte16
PBN - 03 - 32© Jaime Alberto Parra Plaza
El modo INDEXADO es ideal para direccionar cadenas.
Cte16 apunta al inicio de la cadena y
SI ó DI al elemento a acceder:
DIRECCIONAMIENTO DE CADENAS:
PBN - 03 - 33© Jaime Alberto Parra Plaza
uP DATOS dirección0H
32H33H
8IH
32H
cte16VariableCadena
4FH
DI
PBN - 03 - 34© Jaime Alberto Parra Plaza
SUBMODO BASADO-INDEXADO:
EA = [SI] [BX] [cte16] ó
EA = [DI] [BX] [cte16]
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.
PBN - 03 - 35© Jaime Alberto Parra Plaza
uP DATOS
SIDI
BX
cte16
PBN - 03 - 36© Jaime Alberto Parra Plaza
DIRECCIONAMIENTO DE ESTRUCTURAS O MATRICES: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:
PBN - 03 - 37© Jaime Alberto Parra Plaza
uP DATOS direcciones0H
48Hcte16
06HBX
01HSI
48H arreglo 049H4AH4BH arreglo 14CH4DH4EH4FH50H
arreglo 2
PBN - 03 - 38© Jaime Alberto Parra Plaza
PREGUNTA 3:
• ¿Qué relación existe entre los segmentos que accede el microprocesador y los llamados modelos de memoria que implementan los compiladores de lenguaje C?
PBN - 03 - 39© Jaime Alberto Parra Plaza
< FIN DE LA CLASE 3 >