EC-2721 Arquitectura del Computador I Universidad Simón Bolívar Departamento de Electrónica y Circuitos Prof. Juan. C. Regidor Organización de Computadoras: Un enfoque estructurado, Andrew Tanenbaum, Pearson Education. Capítulo 4 El nivel ISA Primera Parte Compilando Java a IJVM a) Un fragmento de código en Java. b) El correspondiente lenguaje ensamblador Java. c) El programa en IJVM en código hexadecimal. 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... Pilas (1) SP C3 C2 C1 SP D4 120 LV C0 D3 11C SP B2 B2 D2 118 B1 B1 D1 114 LV B0 B0 LV D0 110 SP A3 10C A3 A3 A3 A2 108 A2 A2 A2 A1 104 A1 A1 A1 LV A0 100 A0 A0 A0 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.
6
Embed
Compilando Java a IJVM El nivel ISA Primera Parteprof.usb.ve/jregidor/cursos/ec2721/pdfs/2_EC2721_MIC1... · 2012. 1. 17. · Compilando Java a IJVM (1) a) Un fragmento de código
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
EC-2721
Arquitectura del Computador I!
Universidad Simón BolívarDepartamento de Electrónica y Circuitos
Prof. Juan. C. Regidor
Organización de Computadoras: Un enfoque estructurado,
Andrew Tanenbaum, Pearson Education. Capítulo 4
El nivel ISA
Primera Parte
Compilando Java a IJVM
a) Un fragmento de código en Java.
b) El correspondiente lenguaje ensamblador Java.
c) El programa en IJVM en código hexadecimal.
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...
Pilas (1)
SP C3
C2
C1 SP D4 120
LV C0 D3 11C
SP B2 B2 D2 118
B1 B1 D1 114
LV B0 B0 LV D0 110
SP A3 10C A3 A3 A3
A2 108 A2 A2 A2
A1 104 A1 A1 A1
LV A0 100 A0 A0 A0
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
a) Se mete la variable a2 en la pila
b) Se mete la variable a3 en la pila
c) Suma
d) Se guarda el tope de la pila en la variable a1
El Modelo de Memoria de IJVM
A
é
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
Múltiples Operandos
MúltiplesResultados
Instrucción Completa,Buscar próxima instrucción
Diagrama de estados del Ciclo de Instrucción Conjunto de Instrucciones de IJVM (1)
Conjunto de instrucciones de IJVMLos operandos byte, const, y numvar son de 1 byte.
Los operandos despl, indice y offset son de 2 bytes.
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 lámina anterior.
ILOAD j ILOAD k IADD ISTORE i ILOAD i BIPUSH 3 IF_ICMPEQ L1