Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Uso de registros recomendados y paso de parámetros en convenio de registros. - Prof. Guira, Apuntes de Ingeniería Telemática

El convenio de uso de registros en la arquitectura de computadores, con un enfoque especial en el uso recomendado de registros y el paso de parámetros a procedimientos. El texto incluye un análisis detallado de los registros utilizados en la arquitectura mips y un ejemplo práctico de cómo pasar parámetros a una subrutina. Útil para estudiantes de informática y tecnologías de la información que están aprendiendo sobre la arquitectura de computadores y el uso de registros.

Tipo: Apuntes

Antes del 2010

Subido el 27/02/2009

pitiii
pitiii 🇪🇸

4.3

(12)

14 documentos

1 / 21

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Convenio para el uso de registros
REGISTROS
USO DEL REGISTRO RECOMENDADO
$0
Siempre contiene el valor cableado 0.
$1
($at)
Reservado por el ensamblador y el sistema operativo.
$2 - $3
($v0 - $v1)
Se usan para devolver valores de rutinas (funciones)
$4 - $7
($a0 - $a3)
Se usan para pasar parámetros a rutinas (funciones). El resto de argumentos se pasan por pila.
$8 - $15
($t0 - $t7)
Registros de guardar invocador para mantener temporalmente cantidades que no necesitan ser preservadas a
través de las llamadas.(y que si quieren conservarse deberán ser guardados por el procedimiento invocador)
$16-$23
($s0 - $s7)
Registros de guardar invocado, contienen por tanto valores persistentes a través de las llamadas (el
procedimiento invocado tiene la obligación de guardarlos en la pila y posteriormente recuperarlos si va a
modificarlos en su código.)
$24 - $25
($t8 - $t9)
Registros de guardar invocador para mantener temporalmente cantidades que no necesitan ser preservadas a
través de las llamadas.(y que si quieren conservarse deberán ser guardados por el procedimiento invocador)
$26- $27
($k0 - $k1)
Reservado por el ensamblador y el sistema operativo.
$28
($gp)
es un puntero global que apunta a la mitad del primer bloque de memoria de 64k en el segmento de datos
estáticos. (no lo usaremos en las prácticas)
$29
($sp)
es el puntero de pila, que apunta a la última posición ocupada de la pila.
$30
($fp)
es el puntero de encuadre. Se utiliza para apuntar a una zona de la pila para posteriormente recuperar los
argumentos que en ella se pasen a un procedimiento al llamarlo
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Vista previa parcial del texto

¡Descarga Uso de registros recomendados y paso de parámetros en convenio de registros. - Prof. Guira y más Apuntes en PDF de Ingeniería Telemática solo en Docsity!

Convenio para el uso de registros

REGISTROS

USO DEL REGISTRO RECOMENDADO

Siempre contiene el valor cableado 0.

($at)

Reservado por el ensamblador y el sistema operativo.

($v0 - $v1)

Se usan para devolver valores de rutinas (funciones)

($a0 - $a3)

Se usan para pasar parámetros a rutinas (funciones). El resto de argumentos se pasan por pila.

($t0 - $t7)

Registros de guardar invocador para mantener temporalmente cantidades que no necesitan ser preservadas a

través de las llamadas.(y que si quieren conservarse deberán ser guardados por el procedimiento invocador)

($s0 - $s7)

Registros de guardar invocado, contienen por tanto valores persistentes a través de las llamadas (el

procedimiento invocado tiene la obligación de guardarlos en la pila y posteriormente recuperarlos si va a

modificarlos en su código.)

($t8 - $t9)

Registros de guardar invocador para mantener temporalmente cantidades que no necesitan ser preservadas a

través de las llamadas.(y que si quieren conservarse deberán ser guardados por el procedimiento invocador)

($k0 - $k1)

Reservado por el ensamblador y el sistema operativo.

($gp)

es un puntero global que apunta a la mitad del primer bloque de memoria de 64k en el segmento de datos

estáticos. (no lo usaremos en las prácticas)

($sp)

es el puntero de pila, que apunta a la última posición ocupada de la pila.

($fp)

es el puntero de encuadre. Se utiliza para apuntar a una zona de la pila para posteriormente recuperar los

argumentos que en ella se pasen a un procedimiento al llamarlo

($ra)

La instrucción “jal addr” escribe en este registro la dirección de retorno del salto.

● Problema del paso de argumentos a procedimientos (subrutinas).

(v0,v1,...) = funcion (a0,a1,a2 , ... )

Esquema general seguido en el paso de parámetros a procedimiento (A)

lw $t1,8($sp) # restaura su valor addi $sp,$sp,12 # que antes de la llamada, y $v0 el resultado

li $v0, syscall # Fin del programa

**rutina: ### RUTINA AUXILIAR ###

Suma el contenido de los seis parámetros ###**

subu $sp,$sp, sw $ra,8($sp) sw $fp,4($sp) sw $s0,0($sp) # Convenio Guardar Invocado

add $fp,$sp,

lw $s0,0($fp) # Accedemos a parámetro 5 lw $t0,4($fp) # Accedemos a parámetro 6

move $t1,$a add $t1,$t1,$a add $t1,$t1,$a add $t1,$t1,$a add $t1,$t1,$s add $t1,$t1,$t move $v0,$t1 # Devuelve en $v0 el resultado

lw $s0,0($sp) lw $fp,4($sp) lw $ra,8($sp) addi $sp,$sp,

jr $ra

Ejemplo. De paso de parámetros a procedimiento (C)

Área de Arquitectura y Tecnología de Computadoras

Prácticas de Fundamentos de Computadores. Curso 2001/