5.2 Funcionamiento interno de una computadora (cómo se ejecutan

Anuncio
5.2 Funcionamiento interno de una computadora
(cómo se ejecutan las instrucciones en lenguaje máquina)
Registros de procesador :
− contador de programa (PC) = dirección de la instrucción a
ejecutar
− registro de instrucción (IR) = código de la instrucción a ejecutar
Para comenzar a ejecutar un programa, primero habrá que
cargarlo en memoria (en posiciones consecutivas) y darle el
control (PC Å dirección de la 1ª instrucción)
Fundamentos de Informática EUP ULPGC
Jose Torres
Una vez hecho esto la unidad de control repite sucesivamente 2
fases para cada instrucción:
a) captación de la instrucción : copiar la instrucción en el
registro de instrucción (IR): IR Å M(PC) y PC Å PC+1
b) ejecución de la instrucción : interpreta el código de
operación y genera señales de control para efectuar las
(micro)operaciones necesarias
Fundamentos de Informática EUP ULPGC
Jose Torres
Supongamos un computador como el de la figura:
Fundamentos de Informática EUP ULPGC
Jose Torres
Las instrucciones máquina de este computador son de 16 bits :
(de mas a menos significativos)
− 4 para el código de operación
− 4 para el operando destino(op_d)
− 4 para el operando fuente 2 (op_f2)
− 4 para el operando fuente 1(op_f1)
Los operandos siempre estarán en un registro (que puede ser un
puerto) que se especifica por su número (dirección)
En ensamblador se especifica primero el código de operación y
luego los operandos: si son 2 el destino y el fuente 1 y si son 3 el
destino, el fuente 2 y el fuente 1(en este orden y separados por
comas)
Fundamentos de Informática EUP ULPGC
Jose Torres
El lenguaje de esta máquina tiene, entre otras, las siguientes
instrucciones:
− IN rx,IPv : entrada de dato: rx Å IPv. Para el teclado el puerto
de entrada es 02. El código de operación de esta instrucción es
B’0100
− OUT OPv,rx : salida de dato = OPv Å rx. Para la pantalla el
puerto de salida es 02. El código de operación de esta
instrucción es B’0101
− ADDS rx,ry,rz : rx Å ry + rz. El código de operación de esta
instrucción es B’0110
− HALT : finaliza el programa quedando en espera. El código de
operación de esta instrucción es B’1111
Fundamentos de Informática EUP ULPGC
Jose Torres
Programa para sumar dos números que se dan por teclado y dar
el resultado por pantalla :
En ensamblador :
IN r0,IP02
/* introducir dato y cargarlo en r0 */
IN r1,IP02
/* introducir dato y cargarlo en r1 */
ADDS r3,r0,r1 /* sumar datos y cargar resultado en r3 */
OUT OP02,r3 /* sacar resultado por pantalla*/
HALT
Supongamos que el programa se carga a partir de la dirección 8.
El contenido de los registros (aquellos que cambian su valor) al
final de la fase de ejecución y captación de cada una de las
instrucciones sería:
Fundamentos de Informática EUP ULPGC
Jose Torres
1.a) IR=h4002,PC=h0009
1.b) r0=h0032 (valor tecleado)
2.a) IR=h4102,PC=h000A
2.b) r1=h0010 (valor tecleado)
3.a) IR=h6301,PC=h000B
3.b) r3=h0042
4.a) IR=h6302,PC=h000C
4.b) OP02=h0042
5.a) IR=hF000,PC=h000D
5.b) -
Fundamentos de Informática EUP ULPGC
Jose Torres
Descargar