Red de conocimiento informático - Aprendizaje de código fuente - ¿En qué circunstancias se utilizan instrucciones de direccionamiento de punteros?

¿En qué circunstancias se utilizan instrucciones de direccionamiento de punteros?

Los punteros se utilizan para señalar una dirección. La ventaja de utilizar este método de direccionamiento es que puede cambiar la dirección mientras el programa se está ejecutando.

Puntero para direccionamiento indirecto de memoria

La instrucción utilizada para el direccionamiento indirecto de memoria en el programa incluye una instrucción, un identificador de dirección y un desplazamiento (el desplazamiento debe indicarse entre corchetes).

A continuación se proporciona un ejemplo de un puntero de formato de doble palabra:

l

p#8.7

Cargue el valor del puntero en el dispositivo acumulador 1

t

i[md2]

transfiere el valor del puntero a md2

a

i [md2]

Consulta el estado de la señal de i8.7

t

i[md2]

. 7

=

q[md2]

Asignar un valor al bit de salida q8.7

Direccionamiento interno y direccionamiento intercalado de el área de memoria Dirección

: una declaración de programa que utiliza uno de estos modos de direccionamiento consta de una instrucción y lo siguiente: un identificador de dirección, un identificador de registro de dirección y un desplazamiento. Dirección

Los registros (ar1, ar2) y los desplazamientos deben escribirse entre corchetes.

Rutina de direccionamiento interno para área de almacenamiento

: El puntero no contiene información que indique el área de almacenamiento:

l

p#8.7

Cargar el valor del puntero en el acumulador 1

lar1

Cargar el puntero del acumulador 1 en ar1

a

i[ar1,p#0.0]

Consultar el estado de la señal de i8.7

=

q[ar1,p#1.1]

Asignar un valor al bit de salida q10.0

El desplazamiento 0.0 no funciona. El bit de salida q10.0

es igual a 8.7

(ar1)

Suma el desplazamiento 1.1, el resultado es 10.0

en cambio 9.8.

Rutina de direccionamiento de entrelazado de área de memoria

: En el direccionamiento de entrelazado de área de memoria, el puntero contiene información que indica el área de memoria (en el ejemplo

i

y

q).

l

p#i8.7

Cargue el valor del puntero y el identificador del área de almacenamiento en el acumulador 1

lar1

Almacene el área de almacenamiento i

y la dirección 8.7 en ar1

l

p#q8.7

Almacene el valor del puntero e identificador de dirección en el acumulador 1

lar2

Mover el área de almacenamiento q y la dirección 8.7 a ar2

a

[ar1,p# 0.0]

Consultar el estado de la señal del bit de entrada i8.7

=

[ar2,p#1.1]

Asignar valor al bit de salida q10.0 Asignación

El desplazamiento 0.0 no funciona. La salida q10.0

es igual a 8,7

(ar2)

más un desplazamiento de 1,1. El resultado es 10,0

, no 9,8

.