Documente Academic
Documente Profesional
Documente Cultură
YENNIFER A. RANGEL F.
C.I:20-849.772
Introduccin 3
Entradas y salidas Bios. 4
Lenguaje ensamblador6
Conclusin . 18
Webgrafias 19
Anexos 20
INTRODUCCIN
La BIOS:
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").
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:
LENGUAJE ESAMBLADOR
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
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
Bus interno son los canales por donde pasa la informacin que la mquina
va a procesar (bus de entrada) o procesada (bus de salida).
14
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
Memoria de Programa
Memoria de Bit.
16
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
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