el nivel isaprof.usb.ve/mparada/ec2721/pdfs/clase3.pdf · microsoft powerpoint - clase3 author...
TRANSCRIPT
El Nivel ISA
Capítulo 4
Elementos de una Instrucción• Código de operación (Op code)
—Hacer esto…
• Referencia a operandos fuente—A esto…
• Referencia a operando resultado—Pon la respuesta aquí…
• Referencia a la siguiente instrucción—Cuando lo termines, sigues con esto otro...
CalcularDirección
Instrucción
Buscar instrucción
Búsqueda de
operandos
Decodificación de instrucción
Cálculo Dirección
Operandos
Operación sobre datos
Cálculo dirección
operandos
Almacenar Resultado
Diagrama de estados del Ciclo de Instrucción
Múltiples Operandos
MúltiplesResultados
Instrucción Completa,Buscar próxima instrucción
Pilas (1)
120D4SPC1
A0A0A0100A0LV
A1A1A1104A1
A2A2A2108A2
A3A3A310CA3SP
110D0LVB0B0LV
114D1B1B1
118D2B2B2SP
11CD3C0LV
C2
C3SP
Uso de la pila para almacenar variables locales. a) Mientras A está activo. b) Después que A llama a B. c) Después que B llama a C. d) Después que C y B retornan y A llama a D.
Pilas (2)
Uso de una pila de operandos para realizar un cálculo aritmético
El Modelo de Memoria de IJVM
Aé
Conjunto de Instrucciones de IJVM (1)
Conjunto de instrucciones de IJVM
Los operandos byte, const, y numvar son de 1 byte. Los operandos despl, indice y offset son de 2 bytes.
Conjunto de Instrucciones de IJVM(2)
a) Memoria antes de ejecutar INVOKEVIRTUAL. b) Después de ejecutarlo.
Conjunto de Instrucciones de IJVM(3)
a) Memoria antes de ejecutar IRETURN. b) Después de ejecutarlo.
Compilando Java a IJVM (1)
a) Un fragmento de código en Java. b) El correspondiente lenguaje ensamblador Java. c) El programa en IJVM en código hexadecimal.
Compilando Java a IJVM (2)
Tope de la pila después de cada instrucción de la Fig. 4-14(b).
Implementación de IJVM usando Mic-1 (1)
El microprograma para Mic-1
Implementación de IJVM usando Mic-1(2)
El microprograma para Mic-1
Implementación de IJVM usando Mic-1(3)
El microprograma para Mic-1
Implementación de IJVM usando Mic-1(4)
El microprograma para Mic-1
Implementación de IJVM usando Mic-1(5)
El microprograma para Mic-1
Implementación de IJVM usando Mic-1(6)
Formato de instrucción BIPUSH
a) ILOAD con un índice de 1-byte. b) WIDE ILOAD con un índice de 2-byte.
Implementación de IJVM usando Mic-1(7)
La secuencia inicial paraILOAD y WIDE ILOAD. Las direcciones son ejemplos.
Implementación de IJVM usando Mic-1(8)
La instrucción IINC tiene dos campos de operandos distintos.
Implementación de IJVM usando Mic-1(9)
La situación al inicio de diversas microinstrucciones: a) Main1. b) goto1. c) goto2. d) goto3. e) goto4.
Conjunto de Instrucciones de IJVM(2)
a) Memoria antes de ejecutar INVOKEVIRTUAL. b) Después de ejecutarlo.
Conjunto de Instrucciones de IJVM(3)
a) Memoria antes de ejecutar IRETURN. b) Después de ejecutarlo.