viernes, 21 de noviembre de 2014

INSTRUCCIONES Y MODO DE DIRECCIONAMIENTO

 INSTRUCCIONES DE DIRECCIONAMIENTO




Las instrucciones máquina son las acciones elementales que puede ejecutar un computador.

Una acción compleja deberá codificarse como una secuencia de instrucciones máquina en lo que se denomina un programa. La arquitectura de un procesador entendida como el conjunto de recursos operativos disponibles por un programador a nivel de lenguaje máquina queda definida por el repertorio de instrucciones (ISA: Instruction Set Architecture).

En general, una instrucción codifica una operación básica que el computador realiza sobre unos datos ubicados en la memoria o en los registros de la máquina y a los que accede utilizando un modo de direccionamiento. 

Por consiguiente, la arquitectura ISA de un procesador viene determinada por los siguientes factores:


Tipos de datos y formatos que pueden manejar las instrucciones: naturales, enteros, reales, caracteres,entre otros.


La instrucción contiene una dirección que se emplea para leer en memoria una dirección intermedia que será la verdadera dirección del objeto buscado.


Tipos de instrucciones

Transferencia de datos: MOVE, LOAD, STORE

Dos operandos: fuente y destino

 Aritméticas: ADD, SUB, MUL, DIV, EXT, NEG

Dos operandos fuente y uno destino (que puede ser uno de los fuentes)

 Lógicas: AND, OR, NOT, XOR

Dos operandos fuente y uno destino (que puede ser uno de los fuentes)

Comparación: CMP

Comparan operandos y actualizan el registro de estado

Se utilizan normalmente antes de las bifurcaciones

Modificación de la secuencia de ejecución del programa
Ramificaciones incondicionales: BRA desp
Saltos incondicionales: JMP dirección
Ramificaciones condicionales: B
Ramificaciones con retorno: BSR desp
Saltos con retorno: JSR dirección
Retorno de subrutina: RTS, RTE, RTR
 Instrucciones de entrada/salida: INPUT, OUTPUT
Transferencias entre puertos de E/S y registros o memoria. 
 Misceláneas
WAIT, STOP: parar la ejecución hasta la llegada de una interrupción.

HALT: parar el procesador.

NOP: no operación, permite temporizar espera.


 Formato de instrucción: 

• El formato de instrucción especifica el significado de cada uno de los bits que constituyen la instrucción.

•Longitud del formato de instrucción: número de bits que lo componen.
La información contenida en el formato de la instrucción es: 
Código de operación.
 Dirección de los operandos.
Dirección del resultado.
 Dirección de la siguiente instrucción (casi siempre implícita).
 Tipos de representación de los operandos (casi siempre implícitos en el código de operación).

MODO DE DIRECCIONAMIENTO


Los modos de direccionamiento de un procesador son las diferentes formas de transformación del campo de operando de la instrucción en la dirección del operando.

Es un mecanismo que permite conocer la ubicación de un objeto (dato o instrucción), y el computador debe disponer de varios modos de direccionamiento.
No todos los modos de direccionamiento están implementados en todos los computadores. Los modos de direccionamiento disponibles están determinados por la arquitectura interna de la máquina y por el repertorio de instrucciones.

Los modos de direccionamiento se clasificarse en:

propios e impropios:

En los direccionamientos propios el operando está localizado en una dirección concreta de memoria, mientras que en los impropios en otros lugares tales como los registros del procesador entre otros. 

Entre los tres primeros modos de direccionamiento pueden considerarse impropios, mientras que los demás son direccionamientos propios.


Direccionamiento inmediato


El operando es un número que forma parte de la instrucción. No se necesita calcular la dirección absoluta.
La instrucción contiene al propio objeto.
Se emplea cuando la instrucción contiene un valor constante.
El tamaño del operando viene determinado por el espacio reservado para él en el formato de instrucción.


Ejemplos:
ADD BX, 2h
SUB CX, 100h
MOV DX, 30h
MOV AL,22h


Direccionamiento directo



 La dirección del operando viene incluida en la instrucción , aquí el procesador calcula la dirección real ([DS]+Dir).

Ejemplo:
MOV AX, DATO
ADD AX, [100]


Direccionamiento de registro

Los operandos o datos se encuentran en registros.
No se necesita calcular la Dir . Absoluta.
Transfiere un byte o palabra desde el registrofuente o localidad en memoria, hasta el registro o localidad destino en la memoria.
ejemplo:
MOV CX,DX   copia el contenido de tamaño de palabra en el registro DX y lo pasa al registro CX.

 Direccionamiento de registro (Continuación)


A partir del microprocesador 80386 se puede transferir una doble palabra MOV ECX, EDX.
Ejemplos:
ADD BX, CX
MOV BX, AX
SUB DX, BX

Direccionamiento indexado

El procesador calcula la dirección efectiva (real o absoluta sumando a DS o a ES SI o DI respectivamente) más un desplazamiento.
Similar al direccionamiento relativo a registrobase.
El operando se encuentra en memoria.

Registro índice:

se modifica a menudo en la ejecución del programa.
Ejemplo:
MOV SI,2
MOV AX,DATO[SI]

Direccionamiento indirecto

 El operando se encuentra en memoria.
Ejemplo:
MOV BX, OFFSET DATO (LEA BX, DATO)
MOV AX,[BX]
MOV BX,
MOV AX, [BX] 
Los operandos no suelen estar contenidos en la instrucción de forma directa por: 

• Ahorro de espacio.
• Empleo de código reubicable y reentrante.
• Hay datos formando estructuras más o menos complejas. 

Los operandos pueden ubicarse en los siguientes lugares:

 Dentro de la propia instrucción (operandos inmediatos):
En el registro de instrucción. En palabras de extensión o ampliación.
 En registros visibles para el programador.
 En variables ubicadas en posiciones de memoria. 
Dirección efectiva de un operando: ubicación exacta del mismo.

Los operandos pueden ser referenciados desde la instrucción de múltiples formas, dando lugar a los modos de direccionamiento.

Repertorio de instrucciones ortogonal:
 permite utilizar prácticamente todos los modos de direccionamiento como operandos en la mayoría de las situaciones.

No hay comentarios.:

Publicar un comentario