You are on page 1of 19

Ensamblador

Saltar a: navegacin, bsqueda Para otros usos de este trmino, vase Ensamblador (desambiguacin). Tambin ver: lenguaje ensamblador El trmino ensamblador (del ingls assembler) se refiere a un tipo de programa informtico que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene cdigo mquina, ejecutable directamente por la mquina para la que se ha generado. El propsito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en cdigo binario, que es el nico cdigo entendible por la computadora, es en la prctica imposible. La evolucin de los lenguajes de programacin a partir del lenguaje ensamblador origin tambin la evolucin de este programa ensamblador hacia lo que se conoce como programa compilador.

Funcionamiento
El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los cdigos nemotcnicos que aparecen por su cdigo de operacin correspondiente en sistema binario para la plataforma que se eligi como destino en las opciones especficas del ensamblador.

Tipos de ensambladores
Artculo principal: Ensamblador de alto nivel.

Podemos distinguir entre tres tipos de ensambladores:

Ensambladores bsicos. Son de muy bajo nivel, y su tarea consiste bsicamente en ofrecer nombres simblicos a las distintas instrucciones, parmetros y cosas tales como los modos de direccionamiento. Adems, reconoce una serie de directivas (o meta instrucciones) que indican ciertos parmetros de funcionamiento del ensamblador. Ensambladores modulares, o macro ensambladores. Descendientes de los ensambladores bsicos, fueron muy populares en las dcadas de los 50 y los 60, antes de la generalizacin de los lenguajes de alto nivel. Hacen todo lo que puede hacer un ensamblador, y adems proporcionan una serie de directivas para definir e invocar macroinstrucciones (o simplemente, macros). Vase X86. Ensambladores modulares 32-bits o de alto nivel. Son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrs pudiendo trabajar con

programas con estructuras de 16 bits. Adems de realizar la misma tarea que los anteriores, permitiendo tambin el uso de macros, permiten utilizar estructuras de programacin ms complejas propias de los lenguajes de alto nivel.

ENSAMBLADOR
MC. Juan Gilberto Mateos Surez

1. INTRODUCCIN Los ensambladores son programas que procesan los enunciados del programa origen en lenguaje ensamblador y los traducen en archivos en lenguaje mquina que son ejecutados por un microprocesador o un microcontrolador. Los ensambladores permiten que los programas origen se escriban y se editen en una computadora para generar un cdigo ejecutable en otra computadora. El archivo en lenguaje objeto ejecutable resultante se carga y se ejecuta en el sistema destino.

2. LENGUAJE ENSAMBLADOR El lenguaje simblico que se utiliza para codificar los programas origen que se procesan por el ensamblador es llamado lenguaje ensamblador.

Este lenguaje es una coleccin de smbolos mnemnicos que representan: operaciones (mnemnicos de instrucciones para la mquina o de directrices para el ensamblador), nombres simblicos, operadores y smbolos especiales. El lenguaje ensamblador proporciona cdigos de operacin de los mnemnicos para todas las instrucciones de la mquina contenidas en la lista de instrucciones. Adems, el lenguaje ensamblador contiene mnemnicos directrices, los cuales especifican acciones auxiliares que se llevan a cabo por el ensamblador. Estas directrices no siempre son traducidas a lenguaje maquina. Un programador escribe el programa origen en lenguaje ensamblador utilizando cualquier editor de textos o procesador de palabras que sea capaz de producir una salida de texto en ASCII.

Una vez que el cdigo origen ha sido escrito, el archivo origen es ensamblado mediante su procesamiento a travs de algn ensamblador.

3. PROCESAMIENTO DE ENSAMBLADO Este ensamblador es de dos pasadas.

Durante la primer pasada, el programa origen se lee para desarrollar la tabla de smbolos. Durante la segunda pasada el archivo objeto se crea (ensamblado) con referencia a la tabla desarrollada en la primer pasada. Durante la segunda pasada se crea el listado del programa origen. Cada enunciado origen se procesa completamente antes de que el enunciado siguiente se lea. A medida que el enunciado se procesa el ensamblador examina los campos de etiqueta, de cdigo de operacin y de operandos. La tabla de cdigos de operacin se revisa para encontrar un cdigo operacional similar. Durante el procesamiento de un mnemnico correspondiente a un cdigo de operacin normal, el cdigo mquina normal se inserta en el archivo objetivo. La accin buscada por una directriz del ensamblador ocurre durante el procesamiento de dicha directriz. Cualquier error que detecta el ensamblador se muestra justamente antes de la lnea que contiene dicho error. An y cuando no se desee producir un listado origen, los errores se despliegan para indicar que el procesamiento de ensamblado no se llev a cabo de manera normal.

PROGRAMAS EN LENGUAJE ENSAMBLADOR

1. INTRODUCCIN Los programas escritos en lenguaje ensamblador consisten de una secuencia de enunciados origen.

Cada enunciado origen se compone de una secuencia de caracteres ASCII que terminan con un retorno (ENTER). El apndice A contiene un listado de los caracteres disponibles.

2. FORMATO DE LOS ENUNCIADOS ORIGEN


Cada enunciado origen puede contener hasta cuatro campos: una etiqueta o " * " para una lnea de comentario, una operacin (ya sea el mnemnico de una instruccin o una directriz para el ensamblador), un operando y un comentario.

2.1 Campo de Etiquetas

El campo de etiquetas aparece como el primer campo dentro de un enunciado origen. El campo de etiquetas puede adoptar cualquiera de las siguientes formas:
1. Un asterisco ( * ) como el primer carcter en el campo de etiquetas indica que el resto del enunciado origen es un comentario. Los comentarios son ignorados por el ensamblador e impresos en el listado origen solamente como informacin de programacin. 2. Un espacio de carcter en blanco (TAB o espacio) como primer carcter indica que el campo de etiquetas se encuentra vaco. La lnea no tiene una etiqueta y no es un comentario. 3. Un smbolo como primer carcter indica que la lnea tiene etiqueta. Estos smbolos son las letras maysculas y minsculas ( a - z ), los dgitos ( 0 - 9 ) y caracteres especiales como punto ( . ), signo de pesos ( $ ) y subrayado ( _ ). Estos smbolos consisten de uno a quince caracteres, el primero de los cuales debe ser alfabtico o un carcter especial punto o subrayado. Todos los caracteres son significantes y las maysculas y minsculas son distintas. Un smbolo puede aparecer solamente una vez en el campo de etiquetas.

Si un smbolo aparece ms de una vez en el campo de etiquetas, toda referencia a dicho smbolo ser marcada como error.

Con la excepcin de algunas directrices a la etiqueta se le asigna el valor del contador de programa ( PC ) del primer byte de la instruccin o dato que se est ensamblando. El valor asignado a la etiqueta es absoluto. De manera opcional, las etiquetas pueden ser terminadas con el smbolo de dos puntos ( : ). Si dicho smbolo es utilizado, no formar parte de la etiqueta, simplemente servir como separacin entre la etiqueta y el resto del enunciado origen. De esta forma, los siguientes fragmentos son equivalentes: salta: deca salta deca bne salta bne salta

Una etiqueta puede aparecer por si sola en una lnea. El ensamblador interpreta esto como "establece el valor de la etiqueta igual al valor actual del contador de programa ( PC )".

2.2 Campo de Operaciones El campo de operaciones aparece despus del campo de etiquetas y debe de estar precedido por al menos un espacio en blanco.

El campo de operaciones debe de contener el mnemnico de un cdigo de operacin legal o una directriz del ensamblador. En este campo, los caracteres en maysculas son convertidos en minsculas antes de ser revisados como un mnemnico legal. Debido a esto " nop ", " NOP " y " NoP " son reconocidos como el mismo mnemnico. Los smbolos que aparecen en este campo pueden ser de uno de dos tipos.

I. Cdigo de Operacin. Estos smbolos corresponden directamente a instrucciones de mquina.

El cdigo de operacin incluye a cualquier nombre e registro asociado con la instruccin.

Estos nombres de registros no deben de estar separados del cdigo de operacin por ningn espacio en blanco. De esta forma, " clra " significa " limpia (poner en ceros) el acumulador ( A ) ", pero " lr a " significa " limpia la localidad de memoria identificada por la etiqueta a ".

II. Directriz. Estos son cdigos de operacin especiales conocidos por el ensamblador, los cuales ms bien controlan el proceso de ensamblado en vez de ser traducidos a instrucciones mquina.

2.3 Campo de Operandos La interpretacin del campo de operandos depende del contenido del campo de operaciones.

El campo de operandos, si se requiere, debe de seguir al campo de operaciones y debe de estar precedido por al menos un espacio en blanco. El campo de operandos puede contener un smbolo, una expresin o una combinacin de smbolos y expresiones separados por comas. El campo de operandos de una instruccin mquina es utilizada para especificar el modo de direccionamiento de la instruccin, as como el operando de la instruccin. La siguiente tabla resume los diferentes formatos del campo de operandos para la familia HC11.

2.3.1 Sintaxis de Operandos para M68HC11 Para la familia de dispositivos mC´s de la familia M68HC11 se utilizan los siguientes formatos de operandos:

Formatos de Operandos sin operando < expresin # < expresin < expresin , X < expresin , Y < expresin < expresin < expresin < expresin < expresin

Modo de Direccionamiento Acumulador e Inherente Directo, Extendido o Relativo Inmediato Indexado con el registro X Indexado con el registro Y Set o Clear Bit Prueba Bit y Bifurca

En este caso, los operandos de las instrucciones de manipulacin de bits estn separados por espacios ya que el HC11 permite las instrucciones de manipulacin de bits en direcciones indexadas.

Debido a esto, X o Y pueden ser agregados a la primer expresin en los ltimos dos formatos arriba mostrados para formar el clculo de la direccin indexada efectiva.

2.3.2 Expresiones Una expresin es una combinacin de smbolos constantes, operadores algebraicos y parntesis. La expresin especifica un valor, el cual ser utilizado como operando.

Las expresiones pueden consistir de smbolos, constantes o del caracter * (denotando el valor actual del contador de programa PC) unidos entre s por alguno de los operadores: +, , *, /, %, &, I, ^.

2.3.3 Operadores

Los operadores son iguales a los utilizados en el lenguaje de programacin C:


+ suma - resta * multiplicacin / divisin % residuo despus de divisin & and I or ^ or exclusiva Las expresiones son evaluadas de izquierda a derecha y las expresiones con parntesis no estn previstas. La aritmtica es realizada con precisin de enteros en complemento a dos con signo.

2.3.4 Smbolos Cada smbolo se encuentra asociado con un valor entero de 16 bits, el cual es utilizado en lugar del smbolo durante la evaluacin de la expresin.

El asterisco (*) utilizado en una expresin como smbolo representa el valor actual del contador de localidades (el primer byte de una instruccin de varios bytes ).

2.3.5 Constantes Las constantes representan cantidades de informacin que no varan en su valor durante la ejecucin del programa.

Las constantes pueden ser presentadas al ensamblador en uno de cinco posibles formatos: decimal, hexadecimal, binario, octal o ASCII.

El programador le indica al ensamblador el formato del nmero con los siguientes prefijos:

$ Hexadecimal % Binario @ Octal ASCII Las constantes sin prefijo son interpretadas como decimal.

El ensamblador convierte todas las constantes a cdigo mquina binario y son desplegadas en el listado del ensamblado como valores hexadecimales.

2.4 Campo de Comentarios El ltimo campo de un enunciado origen del ensamblador es el campo de comentarios.

Este campo es opcional y solamente es impreso en el listado origen con propsitos de documentacin. El campo de comentarios es separado del campo de los operandos (o del campo de operaciones sino se requiere operando) por al menos un espacio en blanco. El campo de comentarios puede contener cualquier carcter imprimible ASCII.

3. SALIDA DEL ENSAMBLADOR La salida del ensamblador incluye un listado opcional del programa origen y un archivo objeto, el cual se encuentra en el formato de Archivo S de Motorola.

El ensamblador normalmente suprime la impresin del listado origen, pero esta condicin y otras pueden ser alteradas a travs de diferentes opciones proporcionadas en la lnea de comando que invoca al ensamblador.

Cada lnea del listado contiene un nmero de lnea de referencia, la direccin y los bytes ensamblados y el enunciado origen. Opcionalmente, el listado del ensamblado puede contener una tabla de smbolos y otra de la aparicin de estas en el programa. Estas tablas siempre son impresas al final del listado de ensamblado.

FUNCIONAMIENTO DEL ENSAMBLADOR

1. INTRODUCCIN Los programas ensambladores de Motorola, del dominio pblico se nombran "as*.exe", donde * se refiere al tipo de familia. Por lo tanto para correr el ensamblador de la familia M68HC11 se utiliza el comando "as11.exe".

2. INVOCACIN DEL ENSAMBLADOR Para correr el ensamblador del HC11 introdzcase la siguiente lnea de comando:

as11 archivo1 (archivo2 . . . ) ( - opcin1 opcin2 . . . ) Donde archivo1, archivo2, etc, son los nombres de los archivos origen que se desean ensamblar. Los archivos origen pueden tener extensiones en su nombre, pero el ensamblador no verifica si existe alguna extensin en particular (sin embargo, no se utilice la extensin .s19, ya que sta es la extensin del archivo objeto producido por el ensamblador. Al crearse dicho archivo objeto se perdera el archivo origen, ya que sera sobre escrito en el disco). Las opciones son uno o ms de las siguientes:
l Habilita el listado de salida no Deshabilita el listado de salida (default) cre Habilita la generacin de la tabla de referencia s Habilita la generacin de la tabla de smbolos

c Habilita el conteo de ciclos noc Deshabilita el conteo de ciclos Utilice un espacio en blanco antes del signo menos (-) que precede a la opcin, esto con el objetivo de separar la opcin del ltimo nombre de archivo.

Estas opciones tambin pueden ser indicadas al ensamblador mediante el uso de la directriz OPT en el archivo origen. El archivo objeto creado es escrito en el disco y se le da el nombre " nombre archivo.s19 ", donde nombre archivo es el primer archivo origen indicado en la lnea de comando. Cualquier error y el listado opcional (si se especific) son desplegados en la pantalla. El listado y/o los mensajes de error pueden ser salvados en un archivo para su posterior examinacin o impresin, esto se logra mediante un comando de redireccionamiento de E/S en la lnea de comando. En la PC, la redireccin de E/S se indica con el smbolo mayor que ( ), seguido de un nombre de archivo nuevo o existente.

3. MENSAJES DE ERROR Los mensajes de diagnstico de error son colocados en el archivo de listado justo antes de la lnea que contenga el error. El formato de la lnea de error es:

Lnea_nmero: Descripcin del error o Lnea_nmero: Peligro - - - Descripcin del error Los errores en la primer pasada ocasionan la cancelacin de la segunda pasada. Un mensaje de error del tipo peligro no ocasiona la cancelacin de la segunda pasada, pero indica un posible problema. Los mensajes de error estn diseados para ser explicados por s mismos.

DIRECTRICES DEL ENSAMBLADOR

1. INTRODUCCIN Las directrices del ensamblador son instrucciones para el ensamblador mismo en vez de ser instrucciones a ser traducidas directamente en el cdigo objeto.

A continuacin se muestran las directrices reconocidas por los ensambladores como vlidas, se explican con ms detalle las ms usuales. La notacin utilizada para describirlas es la siguiente:

() Denotan un elemento opcional XYZ Los nombres de las directrices se dan en letras maysculas < Los nombres de los elementos se dan en letras minsculas y estn contenidas dentro de los signos menor que y mayor que. Todos los elementos fuera de estos smbolos debern de ser especificados tal como se indica.

BSZ ( BLOCK STORAGE OF ZEROS ) ( < etiqueta ) BSZ < expresin ( < comentario ) La directriz BSZ ( y ZMB ) ocasionan que el ensamblador asigne un bloque de bytes y a cada byte se le asigna el valor inicial de cero.

EQU ( EQUATE SYMBOL TO A VALUE ) < etiqueta EQU < expresin ( < comentario ) La directriz EQU asigna el valor (otro que no sea el valor del contador de programa) de la expresin en el campo de operandos a la etiqueta. La etiqueta no puede ser redefinida en ninguna otra parte del programa. La expresin no puede contener referencias posteriores o smbolos no definidos. Las igualdades (EQU) con referencias posteriores son sealados como errores de fase ( Phasing Errors ).

FCB ( FORM CONSTANT BYTE ) ( < etiqueta ) FCB < exp ( , < exp , . . . , < exp ) ( < comentario ) Esta directriz ocasiona que el valor del operando sea almacenado en un solo byte del programa objeto.

FCC ( FORM CONSTANT CHARACTER STRING ) ( < etiqueta ) FCC < delimitador < cadena < delimitador ( < coment ) Esta directriz se utiliza para almacenar una cadena de caracteres ASCII en bytes consecutivos de memoria.

FDB ( FORM DOUBLE BYTE CONSTANT ) Misma sintaxis que FCB El valor del operando es almacenado en dos bytes consecutivos del programa objeto.

FILL ( FILL MEMORY ) ( < etiqueta ) FILL < expresin , < expresin Ocasiona que el ensamblador inicialice un rea de memoria con un valor constante. La primera expresin indica el valor constante y la segunda es el nmero de bytes a ser inicializados.

OPT ( ASSEMBLER OUTPUT OPTIONS ) OPT < opcin ( , < opcin , . . . , < opcin ) ( < comentario ) La directriz OPT es utilizada para controlar el formato de la salida producida por el ensamblador. Las opciones especificadas por medio de esta directriz tienen jerarqua sobre aquellas invocadas en la lnea de comando del ensamblador. Todas las opciones debern introducirse en letras minsculas.

ORG ( SET PROGRAM COUNTER TO ORIGIN ) ORG < expresin ( < comentario ) Esta directriz cambia el valor del contador de programa al valor especificado por la expresin. Todos los enunciados siguientes son ensamblados en localidades de memoria posteriores, empezando en el nuevo valor del PC. Si esta directriz no aparece, el PC es inicializado a un valor de cero.

PAGE ( TOP OF PAGE ) PAGE Ocasiona que el ensamblador avance el papel al principio de la siguiente hoja. Si el listado no se est produciendo, esta directriz no tendr efecto.

RMB ( RESERVE MEMORY BYTES )

( < etiqueta ) RMB < etiqueta ( < comentario ) Ocasiona que el valor del PC sea avanzado en la cantidad especificada por la expresin.

ZMB ( ZERO MEMORY BYTES ) Igual a BSZ.

APNDICE

FORMATO DEL LISTADO DEL ENSAMBLADOR El listado del ensamblador tiene el siguiente formato: LNEA# DIR BYTES CDIGO OBJETO [ # CICLOS ] LNEA ORIGEN LNEA# es un nmero decimal de 4 dgitos impreso como una referencia para la tabla de aparicin de smbolos. DIR es el valor hexadecimal de la direccin del primer byte del cdigo objeto para esta direccin. BYTES CDIGO OBJETO es el cdigo objeto resultante del ensamblado de la lnea origen dado en hexadecimal. #CCLOS solamente aparecer en el listado si la opcin c est habilitada. Aparece dentro de corchetes para ayudar a distinguir este valor del resto de la lnea origen. La LNEA ORIGEN es reimpresa exactamente igual que en el programa fuente, incluyendo las etiquetas. La tabla de smbolos ser impresa cuando la opcin s sea habilitada. La tabla de smbolos tiene el siguiente formato:

SMBOLO DIRECCIN El SMBOLO es tomado directamente del campo de etiquetas del programa fuente u origen. DIRECCIN es la direccin hexadecimal de la localidad a la cual se hace referencia con el smbolo.

La tabla de aparicin de smbolos ser impresa cuando la opcin cre sea seleccionada. La tabla de aparicin de smbolos tiene el siguiente formato:

SMBOLO DIRECCIN * LOC1 LOC2 LOC3 . . . SMBOLO y DIRECCIN son lo mismo antes mencionado. La primera localidad en la lista est marcada con un asterisco * para indicar la lnea donde el smbolo fue definido. Las LOCs subsecuentes son el nmero decimal de lnea del listado del ensamblador donde aparecen las etiquetas. __

lenguaje ensamblador
Enviado por haumi_sabeli

Indice 1. Importancia del lenguaje ensamblador 2. Ventajas y desventajas del Lenguaje Ensamblador 3. Relacin del lenguaje ensamblador con los componentes internos del procesador 4. Relacin entre el cdigo binario y el lenguaje ensamblador 1. Importancia del lenguaje ensamblador La importancia del lenguaje ensamblador radica principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sera que los programas en ensamblador ocupan menos espacio en memoria. 2. Ventajas y desventajas del Lenguaje Ensamblador

Ventajas 1. .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el mas cercano a la mquina la computadora lo procesa mas rpido. 2. Eficiencia de tamao .- Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan libreras y dems como son los lenguajes de alto nivel 3. Flexibilidad .- Es flexible porque todo lo que puede hacerse con una mquina, puede hacerse en el lenguaje ensamblador de esta mquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al mximo los recursos de la mquina. O sea que en lenguaje ensamblador se pueden hacer tareas especificas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permite Desventajas Tiempo de programacin .- Como es un lenguaje de bajo nivel requiere ms instrucciones para realizar el mismo proceso, en comparacin con un lenguaje de alto nivel. Por otro lado, requiere de ms cuidado por parte del programador, pues es propenso a que los errores de lgica se reflejen ms fuertemente en la ejecucin. Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos ms instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores. Peligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la maquina, programar en este lenguaje lo ms comn que pueda pasar es que la mquina se bloquee o se reinicialize. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones invlidas, que normalmente no aparecen al usar un lenguaje de alto nivel. Falta de portabilidad.- Porque para cada mquina existe un lenguaje ensamblador; por ello, evidentemente no es una seleccin apropiada de lenguaje cuando deseamos codificar en una mquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras. 3. Relacin del lenguaje ensamblador con los componentes internos del procesador En la memoria se almacena la informacin en celdas especiales llamados registros los cuales tienen un nivel alto y un nivel bajo. Unidad aritmtica y lgica es la responsable de realizar como su nombre lo indica operaciones aritmticas y lgicas. Unidad de control Se encarga de coordinar de que los otros componentes ejecuten las operaciones correctamente. Bus interno son los canales por donde pasa la informacin que la mquina va a procesar (bus de entrada) o procesada (bus de salida). Registros de uso general AX = Registro acumulador, dividido en AH y AL (8 bits cada uno).- Interviene en las operaciones aritmticas y lgicas, despus de la operacin arroja un resultado. BX = Registro base, dividido en BH y BL.- Se utiliza en transferencias de datos entre la memoria y el procesador.

CX = Registro contador, dividido en CH y CL.- Se utiliza como contador en bucles(LOOP), en operaciones con cadenas(REP), y en desplazamientos(CL). DX = Registro de datos, dividido en DH y DL.- Se utiliza en operaciones de multiplicacin y divisin junto con Ax y en operaciones de entrada y salida de puertos, su mitad inferior DL contiene el nmero de puertos. Registros de Estado Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits ms significativos estn indefinidos, mientras que hay tres bits con valores determinados: los bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno. CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) o "prstamo" (en caso de resta). Este indicador es usado por instrucciones que suman o restan nmeros que ocupan varios bytes. Las instrucciones de rotacin pueden aislar un bit de la memoria o de un registro ponindolo en el CF. PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un nmero par de bits a 1. Este indicador se puede utilizar para detectar errores en transmisiones. AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "prstamo" del nibble (cuatro bits) menos significativo al nibble ms significativo. Este indicador se usa con las instrucciones de ajuste decimal. ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operacin es cero. SF (Sign Flag, bit 7): Refleja el bit ms significativo del resultado. Como los nmeros negativos se representan en la notacin de complemento a dos, este bit representa el signo: 0 si es positivo, 1 si es negativo. TF (Trap Flag, bit 8): Si vale 1, el procesador est en modo paso a paso. En este modo, la CPU automticamente genera una interrupcin interna despus de cada instruccin, permitiendo inspeccionar los resultados del programa a medida que se ejecuta instruccin por instruccin. IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupcin externas. Si vale 0, no se reconocen tales interrupciones DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrirn "autodecremento", esto es, se procesarn las cadenas desde las direcciones ms altas de memoria hacia las ms bajas. Si vale 0, habr "auto-incremento", lo que quiere decir que las cadenas se procesarn de "izquierda a derecha". OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operacin aritmtica con signo, esto es, un dgito significativo se perdi debido a que tamao del resultado es mayor que el tamao del destino.

4. Relacin entre el cdigo binario y el lenguaje ensamblador En el cdigo binario se utilizan ceros y unos, mientras que el lenguaje ensamblador es una coleccin de smbolos mnemnicos que representan: operaciones, nombres simblicos, operadores y smbolos especiales. La relacin entre estos dos lenguajes sera que el binario es el lenguaje que la mquina entiende y el ensamblador se acerca mas lenguaje de esta.

Manejo de la memoria: Direccionamiento (interno y externo) El manejo de la memoria depende de que procesador tenga la mquina, entre los cuales a continuacin se mencionan los siguientes: Memoria de Programa Memoria Externa de Datos Memoria Interna de Datos Registros de Funciones Especiales Memoria de Bit. El espacio de la Memoria de Programa contiene todas las instrucciones, datos, tablas y cadenas de caracteres (strings) usadas en los programas. Esta memoria se direcciona principalmente usando el registro de 16 bits llamado Data Pointer. El tamao mximo de la Memoria de Programa es de 64 Kbytes. La Memoria Externa de Datos contiene todas las variables y estructuras de datos que no caben en la memoria interna del Microprocesador. Esta memoria se direcciona principalmente por el registro de 16 bits Data Pointer , aunque tambin se puede direccionar un banco de Memoria Externa de Datos de 256 bytes usando los dos primeros registros de propsito general . El espacio de Memoria Interna de Datos funcionalmente es la memoria de datos ms importante, ya que ah es donde residen cuatro bancos de registros de propsito general; la pila o stack del programa; 128 bits de los 256 bits de un rea de memoria direccionable por bit y todas las variables y estructuras de datos operadas directamente por el programa. El tamao mximo de la Memoria Interna de Datos es de 256 bytes. Contiene un espacio para los denominados Registros de Funciones Especiales destinado para los puertos de entrada/salida, temporizadores y puerto serie del circuito integrado. Estos registros incluyen al Stack Pointer; al registro de la palabra de estado del programa y al Acumulador. La cantidad mxima de Registros de Funciones Especiales es 128. Todos los Registros de Funciones Especiales tienen direcciones mayores a 127 y se ubican en los 128 bytes superiores de la Memoria Interna de Datos. Estas dos reas de la Memoria Interna de Datos se diferencian por el modo de direccionamiento usado para accesarlas. Los Registros de Funciones Especiales solo se pueden accesar usando el modo de direccionamiento Directo, mientras que los 128 bytes superiores solo se pueden accesar con el modo de direccionamiento Indirecto. Por otra parte, el espacio de Memoria de Bit se usa para almacenar variables y banderas de un bit. El tamao mximo de la Memoria de Bit es de 256 bits, 128 de los bits comparten su espacio con 16 bytes del espacio de la Memoria Interna de Datos y los otros 128 bits lo hacen con los Registros de Funciones Especiales.

You might also like