Вы находитесь на странице: 1из 9

LENGUAJE ENSAMBLADOR UNIDAD DE CONTROL DE MICROPROGRAMA.

Unidad de control es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Su funcin es buscar las instrucciones en la memoria principal, decodificarlas y ejecutarlas, empleando para ello la unidad de proceso. Existen dos tipos de unidades de control, las cableadas y las micro-programadas. La micro-programacin de la unidad de control se encuentra almacenada en una micro-memoria, a la cual se accede de manera secuencial (1, 2, ..., n) para posteriormente ir ejecutando cada una de las microinstrucciones. Para la ejecucin de la instruccin requiere de las siguientes acciones: Las instrucciones de maquina se colocan de manera secuencial en el sistema de memoria del procesador, para formar un programa en lenguaje maquina. La informacin que define las acciones requeridas para ejecutar las instrucciones de mquina se almacena como una secuencia de micro-instrucciones, micro-programa o micro-cdigo en el controlador. Las instrucciones de mquina se llaman macroinstrucciones, para distinguirlas de los microinstrucciones. Un mapeador extrae del registro de instruccin el cdigo de operacin de la macro-instruccin y ste se usa para obtener una direccin la cual es el inicio de una secuencia de micro-instrucciones que definen las acciones requeridas para ejecutar la macro-instruccin. Las micro-instrucciones se traen de micro-memoria al registro de micro-instrucciones y se decodifican para generar un conjunto de seales de control. El controlador genera una secuencia de seales de control sincronizadas, ejecuta una secuencia de microinstrucciones y se sincroniza mediante una seal de reloj externo.

El campo de control de carga indica cmo se debe obtener la localizacin de la siguiente micro-instruccin por ejecutar. Puede ser la siguiente en el almacenamiento de micro-instrucciones o estar en la localizacin dada en el campo de la siguiente instruccin. La seleccin entre estas dos puede ser condicional y depender del contenido del registro de estado de programa.

MODOS DE DIRECCIONAMIENTO Son las diferentes maneras de especificar en informtica un operando dentro de una instruccin (lenguaje ensamblador). Cmo se especifican e interpretan las direcciones de memoria segn las instrucciones. Pueden ser: Direccionamiento Inmediato: En la instruccin est incluido directamente el operando.

Direccionamiento Directo: El campo de operando en la instruccin contiene la direccin en memoria donde se encuentra el operando.

Direccionamiento Indirecto: El campo de operando contiene una direccin de memoria, en la que se encuentra la direccin efectiva del operando.

Direccionamiento

De

registro: Sirve para estn en registros.

especificar operandos que

Indirecto mediante registros: El campo de operando de la instruccin contiene un identificador de registro en el que se encuentra la direccin efectiva del operando.

Direccionamiento Absoluto: El campo de operando contiene una direccin en memoria, en la que se encuentra la instruccin. Direccionamiento De desplazamiento: Combina el modo directo e indirecto mediante registros. Direccionamiento De pila: Se utiliza cuando el operando est en memoria y en la cabecera de la pila.

ACUMULADORES Son registros donde se almacenan temporalmente los datos que sern tratados por la ALU. CONTROL POR MICROPROGRAMA Se realiza el control por medio de un programa (microprograma) almacenado en memoria ROM, cuyas instrucciones son menos numerosas que el mismo programa en cdigo de mquina, donde adems se puede emular una mquina virtual ms potente que la real que configura el propio hardware.

PROGRAMA EN ENSAMBLADOR: Un programa en lenguaje ensamblador es una serie de sentencias ejecutables que le dicen al ensamblador qu operaciones tiene que realizar. Esta serie de sentencias se denominan cdigo fuente. Como en cualquier otro lenguaje, el cdigo fuente tiene una sintaxis predefinida. El lenguaje ensamblador controla al microprocesador en su propio lenguaje, sin la ayuda de comprobaciones del compilador. Las sentencias fuente -tanto instrucciones como directivas- pueden contener constantes y operadores. Las constantes pueden ser binarias, decimales, hexadecimales, octales o caracteres. Las directivas ms utilizadas para definir datos son: * DB: define bytes. (1 byte) * DW: define word. (2 bytes) * DD: define dobles palabras. (4 bytes) * DQ: define cudruples palabras. (8 bytes) * DT: define grupos de 10 bytes. Define: significa la definicin de un macro en una sola lnea.

Existen cinco tipos de operadores, en este lenguaje: * Aritmticos: +, -, *, / (en este ltimo caso la divisin es siempre entera) * Lgicos: and, or, xor y not. (Realizan las operaciones lgicas en las expresiones) * Relacionales: 0FFFF 0FFh(cierto), 0000 0(falso), (Devuelven stas condiciones evalundolas en una expresin. Pueden ser: EQ (igual), NE (no igual), LT (menor que), GT (mayor que), LE (menor o igual que), GE (mayor o igual que).) * Retorno de valores: SEG: devuelve el valor del segmento de la variable o etiqueta, slo se puede emplear en programas de tipo EXE. OFFSET: devuelve el desplazamiento o etiqueta en su segmento. TYPE <variable>: nos devuelve el tipo de operando y el modo de la expresin indicada en un byte SIZE y LENGTH<variable>: devuelven el tamao (en bytes) o el n de elementos, respectivamente, de la variable indicada. * Atributos: OPERADOR PTR: redefine atributos. OPERADORES CS:, DS:, ES: Y SS: OPERADOR SHORT: indica que una etiqueta referenciada puede alcanzarse con un salto corto a la actual situacin del contador de programa. OPERADOR '$: indica la posicin del contador de posiciones OPERADORES HIGH Y LOW: devuelven la parte alta o baja, respectivamente (8 bits) de una expresin.

LA DESCRIPCIN DEL PROGRAMA ES COMO SIGUE: 1.- Las declaraciones SEGMENT y ENDS definen los segmentos a usar. 2.- La variable SALUDO en el segmento DATA, define la cadena a ser desplegada. El signo de dlares al final de la cadena (denominado centinela) es requerido por la funcin de visualizacin de la cadena de MS-DOS. La cadena incluye los cdigos para carriage-return y line-feed. 3.- La etiqueta START en el segmento de cdigo marca el inicio de las instrucciones del programa. 4.- La declaracin DW en el segmento de pila define el espacio para ser usado por el stack del programa. 5.- La declaracin ASSUME indica que registros de segmento se asociarn con las etiquetas declaradas en las definiciones de segmentos. 6.- Las primeras dos instrucciones cargan la direccin del segmento de datos en el registro DS. Estas instrucciones no son necesarias para los segmentos de cdigo y stack puesto que la direccin del segmento de cdigo siempre es cargado en el registro CS y la direccin de la declaracin del stack segment es automticamente cargada en el registro SS. 7.- Las ltimas dos instrucciones del segmento CODE usa la funcin 4CH de MS-DOS para regresar el control al sistema operativo. Existen muchas otras formas de hacer esto, pero sta es la ms recomendada. 8.- La directiva END indica el final del cdigo fuente y especifica a START como punto de arranque.

INSTRUCCIONES DE SALTO CONDICIONAL JA Y JB Instruccin JA (JNBE)

Propsito: Brinco condicional Sintaxis: JA Etiqueta Despus de una comparacin este comando salta si est arriba o salta si no est abajo o si no es igual. Esto significa que el salto se realiza solo si la bandera CF esta desactivada o si la bandera ZF esta desactivada (que alguna de las dos sea igual a cero). Instruccin JB (JNAE)

Propsito: salto condicional Sintaxis: JB etiqueta Salta si est abajo o salta si no est arriba o si no es igual. Se efecta el salto si CF esta activada. INSTRUCCIONES DE COMPARACIN Instruccin CMP

Propsito: Comparar los operandos. Sintaxis: CMP destino, fuente

Esta instruccin resta el operando fuente al operando destino pero sin que ste almacene el resultado de la operacin, solo se afecta el estado de las banderas. Instruccin CMPS (CMPSB) (CMPSW)

Propsito: Comparar cadenas de un byte o palabra. Sintaxis: CMP destino, fuente Con esta instruccin la cadena de caracteres fuente se resta de la cadena destino. Se utilizan DI como ndice para el segmento extra de la cadena fuente y SI como ndice de la cadena destino. Solo se afecta el contenido de las banderas y tanto DI como SI se incrementan. SALTOS INCONDICIONALES: La instruccin JMP (Abreviatura de JUMP, que significa en ingls SALTAR) es la que se utiliza para un salto no condicional; esto, significa que cuando se ejecuta una instruccin JMP, el registro EIP que contiene la direccin de la siguiente instruccin a ejecutar va a apuntar a la direccin indicada por el JMP. Existen bsicamente tres tipos de salto: -Salto cercano o Near Jump: Es un salto a una instruccin dentro del segmento actual (el segmento al que apunta el registro CS). -Salto lejano o Far Jump: Se trata de un salto a una instruccin situada en un segmento distinto al del segmento de cdigo actual. -Cambio de Tarea o Task Switch: Este salto se realiza a una instruccin situada en una tarea distinta, y slo puede ser ejecutado en modo protegido. Cuando estemos programando, lo normal es que utilicemos etiquetas y saltos cercanos. En todo compilador, si escribimos la instruccin JMP , al compilar el fichero la etiqueta ser sustituida por el valor numrico de la direccin de memoria en que se encuentra el lugar donde queremos saltar.

Вам также может понравиться