Preguntas sobre la pila de microprocesamiento

-2

Por lo tanto, estamos utilizando el conjunto de instalación Motorola 68HC11. Tengo el siguiente ejemplo, solo pregunto si tengo la respuesta correcta. La carga x con los datos ubicados en x cambió x de tal manera que ya no hace referencia al valor del puntero de pila. Por lo tanto, loadAB ahora está mirando erróneamente la ubicación de memoria $ 1410.

    
pregunta Mo K.

1 respuesta

1

Estás en lo correcto. En la solución 2:

  • TSX causó que el registro de índice X se cargara con SP + 1 , es decir, el puntero de la pila + 1. Por lo tanto, el valor de X es actualmente una dirección de memoria (SP + 1)
  • Luego, LDX $0,X carga el valor de 2 bytes que comienza en la ubicación de memoria X + 0 en el registro de índice X. Así que X ya no contiene una dirección sino el valor $1410 .
  • LDAB $2,X intenta cargar el byte en la ubicación de memoria X + 2 en el acumulador B. Pero X ya no contiene la dirección que esperamos ( SP + 1 ) sino un número ( $1410 ) que, si se usa como dirección, señalará a un número desconocido en la memoria (si está dentro del espacio de direcciones).

Así que el programa dará resultados inesperados.

    
respondido por el TisteAndii

Lea otras preguntas en las etiquetas