Modo de direccionamiento


Los modos de direccionamiento son un aspecto de la arquitectura del conjunto de instrucciones en la mayoría de los diseños de unidades de procesamiento central (CPU). Los diversos modos de direccionamiento que se definen en una arquitectura de conjunto de instrucciones determinada definen cómo las instrucciones en lenguaje de máquina en esa arquitectura identifican el (los) operando (s) de cada instrucción. Un modo de direccionamiento especifica cómo calcular la dirección de memoria efectiva de un operando utilizando información contenida en registros y / o constantes contenidas dentro de una instrucción de máquina o en otro lugar.

En la programación de computadoras , los modos de direccionamiento son de interés principalmente para quienes escriben en lenguajes ensambladores y para los escritores de compiladores . Para conocer un concepto relacionado, consulte el conjunto de instrucciones ortogonales que trata sobre la capacidad de cualquier instrucción para usar cualquier modo de direccionamiento.

Tenga en cuenta que no existe una forma generalmente aceptada de nombrar los distintos modos de direccionamiento. En particular, diferentes autores y fabricantes de computadoras pueden dar diferentes nombres al mismo modo de direccionamiento, o los mismos nombres a diferentes modos de direccionamiento. Además, un modo de direccionamiento que, en una arquitectura dada, se trata como un modo de direccionamiento único, puede representar una funcionalidad que, en otra arquitectura, está cubierta por dos o más modos de direccionamiento. Por ejemplo, algunas arquitecturas informáticas de conjunto de instrucciones complejas (CISC), como el VAX de Digital Equipment Corporation (DEC) , tratan los registros y las constantes literales o inmediatas simplemente como otro modo de direccionamiento. Otros, como IBM System / 360 y sus sucesores, y la mayoríaLos diseños de computadora con conjunto de instrucciones reducido (RISC), codifican esta información dentro de la instrucción. Por lo tanto, las últimas máquinas tienen tres códigos de instrucción distintos para copiar un registro a otro, copiar una constante literal en un registro y copiar el contenido de una ubicación de memoria en un registro, mientras que el VAX solo tiene una instrucción "MOV".

El término "modo de direccionamiento" está sujeto a diferentes interpretaciones: "modo de cálculo de dirección de memoria" o "modo de acceso a operandos". Según la primera interpretación, se considera que las instrucciones que no leen de la memoria o escriben en la memoria (como "agregar literal al registro") no tienen un "modo de direccionamiento". La segunda interpretación permite máquinas como VAX que usan bits en modo operando para permitir un registro o un operando literal. Sólo la primera interpretación se aplica a instrucciones como "cargar dirección efectiva".

Los modos de direccionamiento que se enumeran a continuación se dividen en direccionamiento de código y direccionamiento de datos. La mayoría de las arquitecturas informáticas mantienen esta distinción, pero hay (o ha habido) algunas arquitecturas que permiten que (casi) todos los modos de direccionamiento se utilicen en cualquier contexto.

Las instrucciones que se muestran a continuación son puramente representativas para ilustrar los modos de direccionamiento y no reflejan necesariamente los mnemónicos utilizados por ninguna computadora en particular.