Pregunta

registros

MIPS tienen una convención - $ s registros deben ser conservados a través de llamadas a subrutinas, así que si su subrutina los modifica, debe guardarlos en la pila, mientras que $ t registros no se conservan

.

Ahora, puede una llamada al sistema potencialmente modificar un registro $ t? En un simulador que tengo, no lo hace, pero podría tener una máquina real los registros $ t Cambio, potencialmente? Lo pregunto porque quiero saber si es seguro suponer un registro $ t seguirá siendo el mismo a través de una llamada al sistema.

¿Fue útil?

Solución

No es aconsejable, a menos documentado, a confiar en cualquier Llamada de preservar registros específicos.

Si el mana para la llamada al sistema establece que sólo modifica ciertos registros, eso es un contrato con su código. Si se rompe el contrato, es un error (aunque probablemente más fácil para que usted pueda fijar en su propio código de esperar a que el desarrollador). Si se afirma nada de eso, no dependen de él, convención o de otro modo.

llamadas bien escritos preservarán todos registros que no se utilizan específicamente para volver usted información. Sin embargo, si usted no está seguro, y necesitas que conserva registro, hágalo usted mismo antes de llamar a la llamada al sistema.

Otros consejos

  

Ahora, puede una llamada al sistema potencialmente modificar un registro $ t?

Por supuesto, la interfaz de llamada al sistema de su sistema operativo puede preservar todos estos registros. Pero no hay ninguna razón técnica por una llamada al sistema no puede modificarlos. Consulte la documentación de su sistema operativo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top