Direccionamiento basado en explícitos
Las direcciones basadas explícitamente se especifican como un número de registro base, RA, y un desplazamiento, D
Las direcciones basadas explícitamente se especifican como un número de registro base, RA, y un desplazamiento, D. El registro base contiene una dirección base. En tiempo de ejecución, el procesador añade el desplazamiento al contenido del registro base para obtener la dirección efectiva. Si una instrucción no tiene un formato de operando de D(RA), la instrucción no puede tener una dirección basada explícitamente. El error 159 se notifica si se utiliza el formulario D(RA) para estas instrucciones.
Un desplazamiento puede ser una expresión absoluta, una expresión reubicable, una expresión externa restringida o una expresión relativa a TOC. Un desplazamiento puede ser una expresión externa sólo si es un nombre csect (sección de control) o el nombre de un bloque común especificado por una pseudo-op .comm .
- Una etiqueta externalizada sigue siendo reubicable, por lo que una etiqueta externalizada también se puede utilizar como desplazamiento.
- Cuando se utiliza una expresión reubicable para el desplazamiento, no se genera ninguna entrada RLD, porque solo se utiliza para el desplazamiento el desplazamiento de la etiqueta (es decir, la expresión reubicable) para la csect.
Aunque los programadores deben utilizar una expresión absoluta para especificar el propio registro base, el contenido del registro base puede especificarse mediante una expresión absoluta, reubicable o externa. Si el registro base contiene un valor reubicable, la dirección efectiva es reubicable. Si el registro base contiene un valor absoluto, la dirección efectiva es absoluta. Si el registro base contiene un valor especificado por una expresión externa, el tipo de la dirección efectiva es absoluto si la expresión se define finalmente como absoluta, o reubicable si la expresión se define finalmente como reubicable.
Cuando utilice un direccionamiento basado en explícitos, recuerde que:
- El GPR 0 no se puede utilizar como registro base. Si especifica 0, indica al ensamblador que no utilice un registro base en absoluto.
- Dado que D ocupa un máximo de 16 bits, un desplazamiento debe estar comprendido entre -2 y (2**15)-1. Por lo tanto, la diferencia entre la dirección base y la dirección del elemento al que se hace referencia debe ser inferior a 2 * *15 bytes.Nota: D y RA son necesarios para el formulario D(RA). Se puede utilizar el formato 0 (RA) o D(0), pero son necesarios los operandos D y RA . Hay dos excepciones:
- Cuando D es una expresión absoluta,
- Cuando D es una expresión externa restringida.