ver una tiempo telefonicas telefonica solicitar registro quedan puedo otro llamadas las investigacion guardan gratis grabadas cuanto conversaciones conversacion como celular assembly

assembly - una - registro de llamadas telefonicas



¿Qué son los registros de llamadas y llamadas guardadas? (2)

Tengo problemas para entender la diferencia entre el que llama y los registros guardados en línea y cuándo usar qué.

Estoy usando el MSP430:

procedimiento:

mov.w #0,R7 mov.w #0,R6 add.w R6,R7 inc.w R6 cmp.w R12,R6 jl l$loop mov.w R7,R12 ret

el código anterior es un destinatario y se usó en un ejemplo de libro de texto, por lo que sigue la convención. R6 y R7 están guardados en el dispositivo y R12 está guardado. Mi entendimiento es que los regs guardados en línea no son "globales" en el sentido de que cambiar su valor en un procedimiento no afectará su valor fuera del procedimiento. Es por eso que debe guardar un nuevo valor en el registro de llamadas al principio.

R12, la persona que ha guardado la llamada es "global", por falta de mejores palabras. Lo que hace el procedimiento tiene un efecto duradero en R12 después de la llamada.

Es mi entendimiento correcto? ¿Me estoy perdiendo otras cosas?


Los registros guardados por la persona que llama ( registros volátiles AKA) se utilizan para almacenar cantidades temporales que no necesitan conservarse en todas las llamadas.

Por esa razón, es responsabilidad del comunicante insertar estos registros en la pila si desea restablecer este valor después de una llamada de procedimiento.

Los registros guardados de Callee (también conocidos como registros no volátiles) se utilizan para mantener valores de larga duración que deben conservarse en todas las llamadas.

Cuando la persona que realiza la llamada realiza un procedimiento, puede esperar que esos registros tengan el mismo valor después de que el destinatario regrese, por lo que es responsabilidad del destinatario que los guarde y los restaure antes de regresar a la persona que llama.

Espero eso ayude.


Callee vs Caller saved es una convención para quién es responsable de guardar y restaurar el valor en un registro a través de una llamada. TODOS los registros son "globales" en el sentido de que cualquier código en cualquier lugar puede ver (o modificar) un registro y esas modificaciones serán vistas por cualquier código posterior en cualquier lugar. El objetivo de las convenciones de guardado de registros es que el código no debe modificar ciertos registros, ya que otro código supone que el valor no se modifica.

En su código de ejemplo, NINGUNO de los registros son guardados en el dispositivo, ya que no intentan guardar o restaurar los valores de registro. Sin embargo, parece no ser un procedimiento completo, ya que contiene una rama a una etiqueta indefinida ( l$loop ). Por lo tanto, podría tratarse de un fragmento de código de la mitad de un procedimiento que trata algunos registros como guardado de llamada; simplemente te faltan las instrucciones de guardar / restaurar.