Sunteți pe pagina 1din 20

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNEFA, NUCLEO MRIDA
MERIDA ESTADO MERIDA

ENTRADAS Y SALIDAS BIOS, & LENGUAJE ESAMBLADOR

YENNIFER A. RANGEL F.
C.I:20-849.772

MERIDA, ENERO 2013


INDICE
1

Introduccin 3
Entradas y salidas Bios. 4
Lenguaje ensamblador6
Conclusin . 18
Webgrafias 19
Anexos 20

INTRODUCCIN

La BIOS es un acrnimo cuyo significado es (Basic Input/Output System) fue


inventado por Gary Kildall el creador del sistema operativo CP/M en 1975, siendo
el nombre de un archivo del sistema. Las mquinas con CP/M usualmente tenan
una ROM muy simple que haca que la unidad de diskette leyera datos desde su
primera posicin de memoria donde se encontraba la primera instruccin del
archivo BIOS que se encargaba de configurar el sistema o programa.
El diseo del IBM PC (1981) incluy todas las funcionalidades bsicas de entrada
y salida en memorias tipo ROM, uso que posteriormente se erigi como el
estndar de facto para la industria. El BIOS del 5150 fue el nico programa que la
compaa IBM desarrollo para el equipo, siendo la nica pieza de cdigo sobre la
que se tenan derechos exclusivos. Basndose en procesos de Ingeniera Inversa,
se escribieron versiones que tenan idnticas funcionalidades a la BIOS IBM pero
adems incluyeron nuevos dispositivos como los discos duros y varias unidades
de disquete manteniendo la retrocompatibilidad hasta el da de hoy. Hasta 1990 el
BIOS era almacenado en memorias ROM o EPROM, despus comenz a
utilizarse memorias flash que pueden ser actualizadas por el usuario sin necesidad
de destapar la caja.
El lenguaje ensamblador, o assembler (assembly language en ingls), es un
lenguaje de programacin de bajo nivel para los computadores,
microprocesadores, microcontroladores y otros circuitos integrados programables.
Implementa una representacin simblica de los cdigos de mquina binarios y
otras constantes necesarias para programar una arquitectura dada de CPU y
constituye la representacin ms directa del cdigo mquina especfico para cada
arquitectura legible por un programador.
As mismo a lo largo del trabajo se estar desglosando todo lo relacionado con
ambos temas los cuales son de gran importancia para la materia.

ENTRADAS Y SALIDAS BIOS

La BIOS:

Es un programa alojado en una memoria ROM incluida en el motherboard, que se


encarga de recopilar la informacin necesaria para que la PC inicie un sistema
operativo. En la placa madre se encuentra el BIOS,es un chip.
En el motherboard se encuentran conectados distintos componentes, ya sean
integrados o dedicados, tales como controladoras, puertos y zcalos, que, a su
vez, soportan los ms variados dispositivos existentes para el sistema. Por esto,
se requiere de un control, de un inventario de todos los dispositivos que tenemos
instalados y sus caractersticas.

COMO TRABAJA
Cuando se enciende la computadora, la primera instruccin del microprocesador
es la de buscar el BIOS principal de la PC y ejecutarlo inmediatamente. Este
programa, a su vez, realiza una prueba general del procesador, la memoria, la
placa de video y las unidades de disco, denominada POST (Power On Self Test),
cuyo resultado se presenta en forma de beeps. Luego, busca y ejecuta el BIOS de
la placa de video.
A continuacin, muestra su pantalla principal y realiza el conteo de memoria,
adems de verificar que la configuracin de puertos y dispositivos sea la correcta.
Finalizada esta rutina, efecta una bsqueda de otros BIOS, tales como el de
controladoras SCSI y RAID, o de unidades de CD y DVD. Por ltimo, muestra el
cuadro de configuracin del equipo, y busca algn dispositivo de arranque, para
entregarle el control de la mquina al sistema operativo.

Tipos de BIOS
Normalmente este software viene grabado en un chip de memoria no voltil de
solo lectura ROM (Read Only Memory), situado en la placa base, de ah el nombre
ROM BIOS. Esto garantiza que no se perder al apagar el Sistema y que no
depender para su actuacin de la existencia o buen funcionamiento de ningn
disco, por lo que estar siempre disponible. Esto ltimo es importante, porque
como veremos a continuacin, posibilita el arranque inicial del equipo sin necesitar
de ningn recurso externo.

Desde los primeros das de vida del PC, el ROM-BIOS dio problemas en los
equipos existentes, dado que los avances tcnicos eran constantes; lo que
supona aumentar las capacidades de disco y de los dispositivos conectados a los
equipos. Esto exiga nuevas BIOSes, con lo que haba que cambiar la placa base,
o cuando mnimo, en los modelos posteriores, cambiar el integrado que contena
la ROM BIOS . Para resolver el problema se comenz a utilizar memorias
regrabables tipo EPROM ("Erasable programmable read-only memory") y
EEPROM ("Electrically erasable programmable read-only memory").

En la actualidad se utiliza un tipo de memoria no voltil "flash" (Flash BIOS) que


puede ser regrabada sin utilizar ningn dispositivo de borrado o grabacin
especial, lo que permite actualizarla muy cmodamente. Por lo general solo es
necesario "bajarse" de Internet la versin adecuada (normalmente del sitio del
fabricante de la placa base) y seguir las instrucciones que acompaan al programa

Debido a que el BIOS es usado constantemente en el funcionamiento normal del


PC, y que la memoria RAM es de acceso ms rpido que la ROM, muchos
fabricantes disponen que el contenido de la ROM BIOS sea copiado a memoria
RAM como parte del proceso de arranque inicial. Esto se conoce como
"Shadowing", y tiene el efecto de acelerar el rendimiento del sistema. La versin
de la BIOS cargada en RAM se denomina shadow BIOS. Naturalmente esto exige
un realineamiento de los vectores de interrupcin , de forma que apunten a las
nuevas posiciones en RAM.

Los BIOS mas modernos son los denominados PnP BIOS o PnP-aware BIOS. Lo
que significa que estn previstos para manejar el estndar PnP "Plug and Play"
de Microsoft (enchufar y usar H2.4). Una tecnologa que permite a un equipo
identificar cualquier dispositivo hardware que se conecte, y signarle los recursos
necesarios sin que existan conflictos con el resto. Antes de esta tecnologa, la
adicin de nuevos dispositivos constitua un autntico quebradero de cabeza,
dada la escasez de recursos que previeron los diseadores del PC.
Por ejemplo, los consabidos conflictos de interrupciones IRQ's y de direcciones
de puertos.

Nota: En los primeros sistemas era un chip DIP ("Dual In-line package") cuya
designacin empezaba por "27" seguido de dos o tres nmeros indicativos de los
Kilobits de capacidad. Por ejemplo, 2764 es una ROM de 8 KB.
Funciones del BIOS
El sistema BIOS de un PC estndar desempea en realidad cuatro funciones
independientes:

Proceso de carga inicial del software


Programa de inventario y comprobacin del hardware
Inicializacin de los dispositivos hardware que lo requieren; carga de cierto
software bsico, e inicio del Sistema Operativo
Soporte para ciertos dispositivos hardware del sistema

LENGUAJE ESAMBLADOR

El lenguaje ensamblador es un lenguaje de programacin que es una traduccin


directa del cdigo de mquina (ste cdigo es interpretado por el
microprocesador), para que pueda ser entendible por los seres humanos, por lo
tanto es un lenguaje de bajo nivel. El lenguaje ensamblador permite una
optimizacin que no se consigue con lenguajes de medio y alto nivel. Permite la
creacin de programas muy rpidos y muy pequeos, adems se tiene un control
que no se consigue con un lenguaje de alto nivel.
Un programa utilitario llamado ensamblador es usado para traducir sentencias del
lenguaje ensamblador al cdigo de mquina del computador objetivo. El
ensamblador realiza una traduccin ms o menos isomorfa (un mapeo de uno a
uno) desde las sentencias mnemnicas a las instrucciones y datos de mquina.
Esto est en contraste con los lenguajes de alto nivel, en los cuales una sola
declaracin generalmente da lugar a muchas instrucciones de mquina.
Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar
el desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de
depuracin. Particularmente, la mayora de los ensambladores modernos incluyen
6

una facilidad de macro (descrita ms abajo), y son llamados macro


ensambladores.
Fue usado principalmente en los inicios del desarrollo de software, cuando an no
se contaba con potentes lenguajes de alto nivel y los recursos eran limitados.
Actualmente se utiliza con frecuencia en ambientes acadmicos y de
investigacin, especialmente cuando se requiere la manipulacin directa de
hardware, altos rendimientos, o un uso de recursos controlado y reducido.
Muchos dispositivos programables (como los microcontroladores) an cuentan con
el ensamblador como la nica manera de ser manipulados.
Caractersticas:
El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser
entendido ya que su estructura se acerca al lenguaje mquina, es decir, es un
lenguaje de bajo nivel.
El lenguaje ensamblador es difcilmente portable, es decir, un cdigo escrito para
un microprocesador, puede necesitar ser modificado, para poder ser usado en otra
mquina distinta. Al cambiar a una mquina con arquitectura diferente,
generalmente es necesario reescribirlo completamente.
Los programas hechos por un programador experto en lenguaje ensamblador son
generalmente mucho ms rpidos y consumen menos recursos del sistema
(memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje
de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden
crear programas que se ejecutan ms rpidamente y ocupan menos espacio que
con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas
realizadas por un microprocesador por lo que se pueden crear segmentos de
cdigo difciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya
que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones
del CPU que generalmente no estn disponibles en los lenguajes de alto nivel.
Tambin se puede controlar el tiempo en que tarda una rutina en ejecutarse, e
impedir que se interrumpa durante su ejecucin.
Programa ensamblador
Ensamblador.
Tpicamente, un programa ensamblador (assembler en ingls) moderno crea
cdigo objeto traduciendo instrucciones mnemnicas de lenguaje ensamblador en
7

opcodes, y resolviendo los nombres simblicos para las localizaciones de memoria


y otras entidades.1 El uso de referencias simblicas es una caracterstica clave del
lenguaje ensamblador, evitando tediosos clculos y actualizaciones manuales de
las direcciones despus de cada modificacin del programa. La mayora de los
ensambladores tambin incluyen facilidades de macros para realizar sustitucin
textual - ej. generar cortas secuencias de instrucciones como expansin en lnea
en vez de llamar a subrutinas.
Los ensambladores son generalmente ms simples de escribir que los
compiladores para los lenguajes de alto nivel, y han estado disponibles desde los
aos 1950. Los ensambladores modernos, especialmente para las arquitecturas
basadas en RISC, tales como MIPS, Sun SPARC, y HP PA-RISC, as como
tambin para el x86 (-64), optimizan la planificacin de instrucciones para explotar
la segmentacin del CPU eficientemente.
En los compiladores para lenguajes de alto nivel, son el ltimo paso antes de
generar el cdigo ejecutable.
Nmero de pasos
Hay dos tipos de ensambladores basados en cuntos pasos a travs de la fuente
son necesarios para producir el programa ejecutable.
Los ensambladores de un solo paso pasan a travs del cdigo fuente una vez y
asumen que todos los smbolos sern definidos antes de cualquier instruccin que
los refiera.
Los ensambladores del dos pasos crean una tabla con todos los smbolos y sus
valores en el primer paso, despus usan la tabla en un segundo paso para
generar cdigo. El ensamblador debe por lo menos poder determinar la longitud
de cada instruccin en el primer paso para que puedan ser calculadas las
direcciones de los smbolos.
La ventaja de un ensamblador de un solo paso es la velocidad, que no es tan
importante como lo fue en un momento dados los avances en velocidad y
capacidades del computador. La ventaja del ensamblador de dos pasos es que los
smbolos pueden ser definidos dondequiera en el cdigo fuente del programa.
Esto permite a los programas ser definidos de maneras ms lgicas y ms
significativas, haciendo los programas de ensamblador de dos paso ms fciles
leer y mantener.2
Ensambladores de alto nivel

Los ms sofisticados ensambladores de alto nivel proporcionan abstracciones del


lenguaje tales como:
Estructuras de control avanzadas
Declaraciones e invocaciones de procedimientos/funciones de alto nivel
Tipos de datos abstractos de alto nivel, incluyendo las estructuras/records,
uniones, clases, y conjuntos
Procesamiento de macros sofisticado (aunque est disponible en los
ensambladores ordinarios desde finales 1960 para el IBM/360, entre otras
mquinas)
Caractersticas de programacin orientada a objetos
Uso del trmino
Note que, en el uso profesional normal, el trmino ensamblador es frecuentemente
usado tanto para referirse al lenguaje ensamblador como tambin al programa
ensamblador (que convierte el cdigo fuente escrito en el lenguaje ensamblador a
cdigo objeto que luego ser enlazado para producir lenguaje de mquina). Las
dos expresiones siguientes utilizan el trmino "ensamblador":
"El CP/CMS fue escrito en ensamblador del IBM S/360"
"El ASM-H fue un ensamblador del S/370 ampliamente usado"
La primera se refiere al lenguaje y la segundo se refiere al programa.
Lenguaje

El lenguaje ensamblador refleja directamente la arquitectura y las instrucciones en


lenguaje de mquina de la CPU, y pueden ser muy diferentes de una arquitectura
de CPU a otra. Cada arquitectura de microprocesador tiene su propio lenguaje de
mquina, y en consecuencia su propio lenguaje ensamblador ya que este se
encuentra muy ligado al la estructura del hardware para el cual se programa. Los
microprocesadores difieren en el tipo y nmero de operaciones que soportan;
tambin pueden tener diferente cantidad de registros, y distinta representacin de
los tipos de datos en memoria. Aunque la mayora de los microprocesadores son
capaces de cumplir esencialmente las mismas funciones, la forma en que lo hacen
difiere y los respectivos lenguajes ensamblador reflejan tal diferencia.
Instrucciones de CPU
9

La mayora de los CPU tienen ms o menos los mismos grupos de instrucciones,


aunque no necesariamente tienen todas las instrucciones de cada grupo. Las
operaciones que se pueden realizar varan de un CPU a otro. Un CPU particular
puede tener instrucciones que no tenga otro y viceversa. Los primeros
microprocesadores de 8 bits no tenan operaciones para multiplicar o dividir
nmeros, por ejemplo, y haba que hacer subrutinas para realizar esas
operaciones. Otros CPU puede que no tengan operaciones de punto flotante y
habra que hacer o conseguir bibliotecas que realicen esas operaciones.
Las instrucciones del CPU pueden agruparse, de acuerdo a su funcionalidad, en:
Operaciones con enteros: (de 8, 16, 32 y 64 bits dependiendo de la arquitectura
del CPU)
Estas son operaciones realizadas por la Unidad aritmtico lgica del CPU
Operaciones aritmticas. Como suma, resta, multiplicacin, divisin, mdulo,
cambio de signo
Operaciones booleanas. Operaciones lgicas bit a bit como AND, OR, XOR, NOT
Operaciones de bits. Como desplazamiento y rotaciones de bits (hacia la derecha
o hacia la izquierda, a travs del bit del acarreo o sin l)
Comparaciones
Operaciones de mover datos:
Entre los registros y la memoria:
Aunque la instruccin se llama "mover", en el CPU, "mover datos" significa en
realidad copiar datos, desde un origen a un destino, sin que el dato desaparezca
del origen.
Se pueden mover valores:
desde un registro a otro
desde un registro a un lugar de la memoria
desde un lugar de la memoria a un registro
desde un lugar a otro de la memoria
un valor inmediato a un registro
un valor inmediato a un lugar de memoria
10

Operaciones de stack:
PUSH (escribe datos hacia el tope del stack)
POP (lee datos desde el tope del stack)
Operaciones de entrada/salida:
Son operaciones que mueven datos de un registro, desde y hacia un puerto; o de
la memoria, desde y hacia un puerto
INPUT Lectura desde un puerto de entrada
OUTPUT Escritura hacia un puerto de salida
Operaciones para el control del flujo del programa:
Llamadas y retornos de subrutinas
Llamadas y retornos de interrupciones
Saltos condicionales de acuerdo al resultado de la comparaciones
Saltos incondicionales
Operaciones con nmeros reales:
El estndar para las operaciones con nmeros reales en los CPU est definido por
el IEEE 754.
Un CPU puede tener operaciones de punto flotante con nmeros reales mediante
el coprocesador numrico (si lo hay), como las siguientes:
Operaciones aritmticas. Suma, resta, multiplicacin, divisin, cambio de signo,
valor absoluto, parte entera
Operaciones trascendentales
Operaciones trigonomtricas. Seno, coseno, tangente, arcotangente
Operaciones con logaritmos, potencias y races
Otras
El lenguaje ensamblador tiene mnemnicos para cada una de las instrucciones del
CPU en adicin a otros mnemnicos a ser procesados por el programa
ensamblador (como por ejemplo macros y otras sentencias en tiempo de
ensamblado).
11

Ensamblado
La transformacin del lenguaje ensamblador en cdigo mquina la realiza un
programa ensamblador, y la traduccin inversa la puede efectuar un
desensamblador. A diferencia de los lenguajes de alto nivel, aqu hay usualmente
una correspondencia 1 a 1 entre las instrucciones simples del ensamblador y el
lenguaje de mquina. Sin embargo, en algunos casos, un ensamblador puede
proveer "pseudo instrucciones" que se expanden en un cdigo de mquina ms
extenso a fin de proveer la funcionalidad necesaria y simplificar la programacin.
Por ejemplo, para un cdigo mquina condicional como "si X mayor o igual que",
un ensamblador puede utilizar una pseudoinstruccin al grupo "haga si menor
que", y "si = 0" sobre el resultado de la condicin anterior. Los Ensambladores
ms completos tambin proveen un rico lenguaje de macros que se utiliza para
generar cdigo ms complejo y secuencias de datos.
Para el mismo procesador y el mismo conjunto de instrucciones de CPU,
diferentes programas ensambladores pueden tener, cada uno de ellos, variaciones
y diferencias en el conjunto de mnemnicos o en la sintaxis de su lenguaje
ensamblador. Por ejemplo, en un lenguaje ensamblador para la arquitectura x86,
se puede expresar la instruccin para mover 5 al registro AL de la siguiente
manera: MOV AL, 5, mientras que para otro ensamblador para la misma
arquitectura se expresara al revs: MOV 5, AL. Ambos lenguajes ensambladores
haran exactamente lo mismo, solo que est expresado de manera diferente. El
primero usa la sintaxis de Intel, mientras que el segundo usa la sintaxis de AT&T
El uso del ensamblador no resuelve definitivamente el problema de cmo
programar un sistema basado en microprocesador de modo sencillo ya que para
hacer un uso eficiente del mismo, hay que conocer a fondo el microprocesador, los
registros de trabajo de que dispone, la estructura de la memoria, y muchas cosas
ms referentes a su estructura bsica de funcionamiento.
Ejemplo
Un programa escrito en lenguaje ensamblador consiste en una serie de
instrucciones que corresponden al flujo de rdenes ejecutables por un
microprocesador.
Por ejemplo, en el lenguaje ensamblador para un procesador x86:
La sentencia
MOV AL, 061h
Asigna el valor hexadecimal 61 (97 decimal) al registro "AL".
12

El programa ensamblador lee la sentencia de arriba y produce su equivalente


binario en lenguaje de mquina
Binario: 10110000 01100001 (hexadecimal: B061)
El mnemnico MOV es un cdigo de operacin u "opcode". El opcode es seguido
por una lista de argumentos o parmetros, completando una tpica instruccin de
ensamblador. En el ejemplo, AL es un registro de 8 bits del procesador, al cual se
le asignar el valor hexadecimal 61 especificado.
El cdigo de mquina generado por el ensamblador consiste de 2 bytes. El primer
byte contiene empaquetado la instruccin MOV y el cdigo del registro hacia
donde se va a mover el dato:

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
13

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

14

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.

15

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.

16

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.

CONCLUSIN
17

Se puede decir que la BIOS es un programa bsico del sistema que est en una
memoria ROM, por lo cual no soporta escritura mediante mtodos convencionales
y perdura aunque no reciba alimentacin, en el encuentran las instrucciones para
controlar los dispositivos bsicos integrados en el motherboard, las rutinas de
deteccin y ejecucin de BIOS de otros componentes, pruebas para verificar que
los dispositivos se hallan en un estado lgico correcto y una interfaz mediante la
cual podemos configurar sus parmetros.
Los lenguajes ensambladores fueron primero desarrollados en los aos 1950,
cuando fueron referidos como lenguajes de programacin de segunda generacin.
Por ejemplo, el SOAP (Symbolic Optimal Assembly Program) era un lenguaje
ensamblador de 1957 para el computador IBM 650. Los lenguajes ensambladores
eliminaron mucha de la propensin a errores y del consumo de tiempo de la
programacin de los lenguajes de primera generacin que se necesitaba con los
primeros computadores, liberando a los programadores del tedio tal como recordar
cdigos numricos y clculo de direcciones. Una vez fueron ampliamente usados
para todo tipo de programacin. Sin embargo, por los aos 1980 (1990 en los
microcomputadores), su uso haba sido en gran parte suplantado por los lenguajes
de alto nivel,[cita requerida] en la bsqueda de una mejorada productividad en
programacin. Hoy en da, aunque el lenguaje ensamblador es casi siempre
manejado y generado por los compiladores, todava se usa para la manipulacin
directa del hardware, acceso a instrucciones especializadas del procesador, o para
resolver problemas de desempeo crtico. Los usos tpicos son drivers de
dispositivo, sistemas embebidos de bajo nivel, y sistemas de tiempo real.
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.

Webografa
18

1- Bios Central

http://www.bioscentral.com/

2- http://es.wikipedia.org/wiki/Lenguaje_ensamblador
3- lenguajeensamblador.tripod.com/

19

ANEXOS

1. placa madre donde se encuentra el BIOS

2 Lenguaje de mquina
del Intel 8088. El cdigo de mquina en hexadecimal se resalta en rojo, el
equivalente en lenguaje assembler en magenta, y las direcciones de
memoria donde se encuentra el cdigo, en azul. Abajo se ve un texto en
hexadecimal y ASCII.

20

S-ar putea să vă placă și