¿Cuál será la secuencia de instrucciones que implementa PUSH R4?
A: SUB SP, SP, #4
STR R4, [SP, #0]
B: STR R4, [SP, #0]
SUB SP, SP, #4
C: ADD SP, SP, #4
STR R4, [SP, #0]
D: STR R4, [SP, #0]
ADD SP, SP, #4
E: todo lo anterior es posible
La respuesta correcta es E, pero no la sigo del todo.
Para A, SP
apuntaría al valor de pila actual, y luego el comando SUB
lo movería a un nuevo lugar vacío en la pila donde se almacena R4
.
Para B, R4
se almacena en el lugar actual de la pila y luego el puntero de la pila se mueve a un espacio vacío. ¿Esto no sobrescribiría el valor actual en la pila cuando se escribe R4
?
Para C y D, ¿ ADD
no lo moverá de la pila? Entonces, en C, R4
sobrescribe un valor, y en D, el siguiente valor insertado en la pila sobrescribiría R4
?