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

blearning.itmina.edu.mx
from blearning.itmina.edu.mx More from this publisher
07.05.2013 Views

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

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!