¿Qué es la carga literal en lenguaje ensamblador?

Cuando programamos en lenguaje ensamblador, muy a menudo necesitamos establecer valores de datos inmediatos en un registro. Cuando el valor de los datos inmediatos es grande, la operación no se puede ajustar en un espacio de instrucciones. Por ejemplo:

  LDR R0, = 0xE000E400;  Registro de prioridad de interrupción externa
 ;  dirección de inicio

Como ninguna instrucción tiene un espacio de valor inmediato de 32, necesitamos colocar los datos inmediatos en un espacio de memoria diferente, generalmente después de la región del código del programa, y ​​luego usar una instrucción de carga relativa de PC para leer los datos inmediatos en el registro.

Dado que es probable que usemos más de un valor literal en nuestro código, el ensamblador o compilador generalmente generará un bloque de datos literales, comúnmente se llama grupo literal.

En días de antaño (principios de los 60) el comando:

LDX 4 ‘347’

Cargaría el valor 347 (un literal) en el registro 4. A diferencia de:

LDX 4 347

Lo que cargaría el contenido de la posición de memoria 347 en el registro 4. AIR también había un comando:

LDL 4 347.

Lo que lograría lo mismo (el valor 347 va a R4) y se llamó una carga literal. Sospecho que se dejó de usar porque ya había suficientes comandos LD para confundir y los innecesarios no ayudaban.