You are on page 1of 26

Lenguajes de Alto Nivel, Ensamblador y Cdigo de Mquina

Una instruccin de un lenguaje de alto nivel es una

construccin cercana al lenguaje humano pero alejada del lenguaje binario que entiende el microprocesador (cdigo mquina). Para que el microprocesador interprete dicha instruccin debe traducirse a cdigo mquina (unos y ceros), proceso denominado compilacin. Se puede hacer mas agradable la escritura en cdigo mquina asignndole un nemnico a cada instruccin formando el cdigo ensamblador.

Flujo de Datos: Como se sabe el proceso de ejecucin de una instruccin se divide en ciclo de bsqueda y ciclo de ejecucin de la instruccin. El primero consiste en copiar la instruccin en curso en el IR. Esto se consigue gracias a que la CPU almacena la direccin de la siguiente instruccin a ejecutar en el Contador de programa. La CPU fija esta direccin en el bus de direcciones y genera las seales de lectura.

Una vez almacenada la instruccin en el IR, se

decodifica y la unidad de control lleva a cabo los pasos necesarios para capturar los operandos necesarios que pueden estar en la misma instruccin, en los registros internos o en la memoria. La manera en que se establece el lugar de almacenamiento de los operandos se conoce como modos de direccionamiento.

Ejemplo: Como ejemplo veamos la ejecucin de la instruccin LXI D, TABLA, que carga en el registro D el byte contenido en la direccin apuntada por el registro HL. Primero se accede a la direccin de memoria apuntada por el PC iniciando el ciclo de bsqueda. Dicho dato se carga en IR. Luego se decodifica la instruccin forzando a cargar los registros involucrados en la instruccin.

Bsqueda de la Instruccin LXI D


5

Ejecucin de la Instruccin LXI D (carga en HL de la direccin TABLA)


6

Repertorio de Instrucciones
Lenguajes de alto nivel compilacin lenguaje

mquina (se usan Nemnicos por ser muy confuso manejar 1 y 0). Repertorio de instrucciones: Conjunto de instrucciones que puede ejecutar el microprocesador. Debe cumplir dos condiciones:

Completitud: Debe poder calcular, en tiempo finito,


cualquier tarea computable. Eficacia: Debe permitir una alta velocidad de clculo.

Cada instruccin debe tener la siguientes caractersticas generales: Deben realizar una funcin nica y sencilla, simplificando su decodificacin. Una misma instruccin emplea un nmero fijo de operandos. Codificacin de instrucciones debe ser sistemtica. Las instrucciones son autocontenidas e independientes, es decir, contienen toda la informacin necesaria para ejecutarse. Debe expresar: el tipo de operacin, el valor o posicin donde se hallan los operandos, el lugar donde tiene que depositarse el resultado y la ubicacin de la siguiente instruccin.
8

En conclusin, los elementos constitutivos de una instruccin mquina son:


Cdigo de operacin. Referencia a operandos fuente. Referencia al operando resultado.

Tipos de Instrucciones Instrucciones de transferencia de datos Mueven datos entre registros y entre registros y memoria. MOV destino, origen Ejemplos:
MOV AL,BL MOV [SI + 3C9E],AX MOV BX,23AF

10

Instrucciones aritmticas y lgicas

Llevan a cabo operaciones aritmticas (suma, resta), incremento, decremento, lgicas (OR, AND, XOR) ADD operando1, operando2 Ejemplo ADD AH,[BX + SI +3003] XOR BX,AX

11

Instrucciones que modifican la secuencia del

programa (Bifurcaciones) Alteran el funcionamiento habitual del Contador de Programa. Se dividen en las siguientes, pudiendo ser cualquiera de ellas incondicionales o condicionales (dependen del estado de los sealizadores). Sin retorno: JUMP direccin Con posibilidad de retorno, para ello guarda la direccin de la siguiente instruccin en la Pila: CALL direccin De retorno: RET
12

Otras Instrucciones

De rotacin NOP HALT INT

13

Modos de Direccionamiento
Este procedimiento sirve para determinar la ubicacin del operando, que dependiendo de la instruccin puede estar en: La propia instruccin, mediante un dato inmediato. Memoria, mediante la direccin. Registros internos de la CPU.

14

Tipos de direccionamiento
Direccionamiento inmediato Forma mas sencilla pues el operando est presente en la instruccin. Ventaja: Una vez cargada la instruccin, no se requiere nuevo acceso a memoria. Desventaja: Rango de valores limitado.

15

Direccionamiento inmediato
16

Direccionamiento directo La instruccin contiene la direccin de memoria del operando Ventaja: Sencillez por que no requiere de clculos previos para conocer la direccin final del dato Desventaja: El cdigo de Direccin (CD) debe tener la suficiente longitud para direccionar todo el mapa de memoria

17

Direccionamiento directo
18

Direccionamiento mediante registro El operando se encuentra almacenado en uno de los registros internos del CPU. Ventaja: No precisa de ciclo de lectura adicional. Desventaja: Rango de valores limitado.

19

Direccionamiento mediante registro


20

Direccionamiento relativo a registro El dato al cual se desea acceder reside en memoria. La direccin efectiva del dato la calcula el procesador sumando una cantidad (desplazamiento) al valor de un registro especial. El desplazamiento puede ser un nmero inmediato o residir en otro registro al cual se le denomina puntero. En la instruccin se debe especificar el desplazamiento y el identificador del registro (aunque a veces viene determinado por la instruccin).
21

Facilita el acceso a un conjunto de posiciones de

memoria especificadas a partir de una posicin de referencia. Ventaja: Accede a todo el espacio de direccionamiento. Desventaja: Complejidad. Existen varios tipos en funcin del registro puntero utilizado: Direccionamiento relativo al registro PC. Direccionamiento relativo al registro base: usa como puntero un registro de trabajo o uno dedicado, al cual se le denomina registro base. Direccionamiento relativo a la Pila.
22

Direccionamiento relativo a registro


23

Direccionamiento indexado Direccionamiento similar al relativo a registro base. Diferencia: El registro puntero (o ndice, llamado en este caso) se modifica con frecuencia en la ejecucin de un programa. Se usa para recorrer estructuras de datos (matrices).

24

Direccionamiento indirecto La direccin especificada en la instruccin no indica la posicin del dato, sino la direccin efectiva del dato. Ventaja: Supera la desventaja del direccionamiento directo. Desventaja: La ejecucin de la instruccin requiere de dos referencias a memoria. Usado en aplicaciones que usan datos distanciados en memoria. Se puede combinar con todos los direccionamientos relativos vistos anteriormente.

25

Direccionamiento indirecto
26

You might also like