Tema 3: El nivel de lenguaje máquina - Blearning
Tema 3: El nivel de lenguaje máquina - Blearning Tema 3: El nivel de lenguaje máquina - Blearning
Bloque de activación antes, durante y después de la llamada a un procedimiento # Programa principal ..... Llamar_a B(p1,p2,..) Antes Dirección baja de memoria Durante Después sp -> Variables locales Registros guardados Dirección de retorno fpOLD sp ->
Ejemplo: Soporte a procedimientos de la arquitectura MIPS • Convenio de los programadores para el uso de los registros – $a0 - $a3: Registros para paso de hasta 4 parámetros. – $v0 - $v1: Registros para la devolución de resultados. – $gp: puntero global que apunta a un segmento de datos estáticos. – $sp: Puntero de pila. – $fp: Puntero de encuadre (frame pointer). – $ra: Registro para guardar la dirección de retorno al realizar la llamada. • Instrucción MIPS para llamada a procedimientos – Jump - and - Link (jal) • jal ProcedureAddress # $ra= PC+ 4; ir a ProcedureAddress • jalr registro # $ra= PC+ 4; ir a (registro) • Instrucción MIPS para el retorno de procedimientos – Jump Register (jr) • jr $ra # ir a la dirección dada por $ra Fundamento de Computadores (1º II) Cap 2: El nivel de lenguaje máquina 37 de 64
- Page 1 and 2: Tema 3: El nivel de lenguaje máqui
- Page 3 and 4: Características del lenguaje máqu
- Page 5 and 6: Modos de direccionamiento • ¿Qu
- Page 7 and 8: Modos de direccionamiento: Interpre
- Page 9 and 10: Red de alineación Ejemplo Memoria:
- Page 11 and 12: Breve descripción de la arquitectu
- Page 13 and 14: Modos de direccionamiento del proce
- Page 15 and 16: Modos de direccionamiento y registr
- Page 17 and 18: Instrucciones para el control de fl
- Page 19 and 20: Bifurcaciones • La dirección de
- Page 21 and 22: Instrucciones de llamada y retorno
- Page 23 and 24: etur Operaciones básicas • Concl
- Page 25 and 26: Especificación del tipo de operand
- Page 27 and 28: Formatos de las instrucciones • L
- Page 29 and 30: Ejemplo de arquitectura CISC (Compl
- Page 31 and 32: Procedimientos • Definición: Fra
- Page 33 and 34: Tipos de procedimientos • Procedi
- Page 35: Operaciones sobre la pila sp-4 sp G
- Page 39 and 40: Ejemplo para MIPS SP SP=SP-20 # E
- Page 41 and 42: Clasificación de las arquitecturas
- Page 43 and 44: Clasificación de las arquitecturas
- Page 45 and 46: Número de registros en arquitectur
- Page 47 and 48: Ventajas e inconvenientes del lengu
- Page 49 and 50: El montador de enlaces (linker) •
- Page 51 and 52: Lenguaje ensamblador MIPS R2000 •
- Page 53 and 54: Convenio para el uso de la memoria
- Page 55 and 56: Sintaxis del ensamblador • Línea
- Page 57 and 58: Directivas del ensamblador de MIPS
- Page 59 and 60: Repertorio de instrucciones MIPS: I
- Page 61 and 62: Repertorio de instrucciones MIPS: I
- Page 63 and 64: Repertorio de instrucciones MIPS: I
Ejemplo: Soporte a procedimientos <strong>de</strong> la<br />
arquitectura MIPS<br />
• Convenio <strong>de</strong> los programadores para el uso <strong>de</strong> los registros<br />
– $a0 - $a3: Registros para paso <strong>de</strong> hasta 4 parámetros.<br />
– $v0 - $v1: Registros para la <strong>de</strong>volución <strong>de</strong> resultados.<br />
– $gp: puntero global que apunta a un segmento <strong>de</strong> datos estáticos.<br />
– $sp: Puntero <strong>de</strong> pila.<br />
– $fp: Puntero <strong>de</strong> encuadre (frame pointer).<br />
– $ra: Registro para guardar la dirección <strong>de</strong> retorno al realizar la llamada.<br />
• Instrucción MIPS para llamada a procedimientos<br />
– Jump - and - Link (jal)<br />
• jal ProcedureAddress # $ra= PC+ 4; ir a ProcedureAddress<br />
• jalr registro # $ra= PC+ 4; ir a (registro)<br />
• Instrucción MIPS para el retorno <strong>de</strong> procedimientos<br />
– Jump Register (jr)<br />
• jr $ra # ir a la dirección dada por $ra<br />
Fundamento <strong>de</strong> Computadores (1º II) Cap 2: <strong>El</strong> <strong>nivel</strong> <strong>de</strong> <strong>lenguaje</strong> <strong>máquina</strong> 37 <strong>de</strong> 64