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 centrales de procesamiento (CPU). Los diversos modos de direccionamiento que se definen en una determinada arquitectura de conjunto de instrucciones definen cómo las instrucciones de lenguaje de máquina en esa arquitectura identifican los operandos de cada instrucción. Un modo de direccionamiento especifica cómo calcular la dirección de memoria efectiva de un operando mediante el uso de 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 principalmente de interés para aquellos que escriben en lenguajes ensambladores y para los escritores de compiladores . Para un concepto relacionado, consulte el conjunto de instrucciones ortogonales que se ocupa de 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 determinada arquitectura, se trata como un único modo de direccionamiento puede representar una funcionalidad que, en otra arquitectura, está cubierta por dos o más modos de direccionamiento. Por ejemplo, algunas arquitecturas de computadora con conjunto de instrucciones complejas (CISC), como Digital Equipment Corporation (DEC) VAX , tratan los registros y las constantes literales o inmediatas 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 tiene solo 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 ni 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 de modo de operando para permitir un registro o un operando literal. Solo la primera interpretación se aplica a instrucciones como "cargar dirección efectiva".

Los modos de direccionamiento enumerados 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 mnemotécnicos utilizados por una computadora en particular.