You are on page 1of 59

Qu es Hardware?

Hardware es todo aquello que es tangible (lo que se puede tocar).


Dentro de este grupo est el monitor, el teclado, la computadora / ordenador
en si la caja (lo que alberga las tarjetas, el disco duro, la unidad de disquete,
etc.).
Tambin se incluyen la impresora, la UPS (sistema de Fuerza ininterrumpible), el
ratn (mouse), la cmara de video acoplada a nuestro equipo, el micrfono, los
cables, conexiones, etc.
Tambin se encuentran dentro de esta categora el modem, el switch, el router,
la lnea telefnica, etc., que hacen la comunicacin a internet posible.

Qu es Software?
Todo el hardware que hay no puede funcionar si no hay software (programa o
programas) que hacen que este trabaje de manera adecuada.
El software hace que una computadora tenga vida y se comporte de la manera
que todos conocemos.
Algunos ejemplos de software son:
- Los Sistemas Operativos (S.O.) como el antiguo DOS (Disk Operating
System), Windows 95, 98, Milenium, 2000, XP, y Vista. Tambin hay que tomar en
cuenta que hay Sistemas Operativos de Microsoft especial para redes. Otros
Sistemas Operativos son el OS/2, el LINUX (en varias versiones) , el UNIX,
entre otros.
Cuando se escucha hablar de DOS, Windows 3.1, Windows 95, Windows 98,
Windows NT, Windows 2000, Windows XP, Windows Vista, Linux, Unix,
OS/2, Android, etc., se est hablando del Sistema Operativo.
El S.O. es una primera capa de software que asla al usuario del
funcionamiento directo de la computadora.
El Sistema Operativo es un conjunto de programas que interactan
directamente con el hardware y se encarga de que ste funcione adecuadamente.
El Sistema Operativo permite que el usuario tenga acceso a las virtudes de la
mquina de una manera amigable sin que deba de saber los detalles de operacin
de sta. Permite tambin que el usuario corra aplicaciones. (Word, Excel, Juegos,
etc.)
Cuando una computadora se enciende una de las primeras cosas que se hace es
cargar el S.O. en memoria (El S.O. debe estar al menos parcialmente en memoria
para que la computadora pueda funcionar.)

Nota: Al encenderse una computadora lo primero que se ejecuta es un pequeo


programa almacenado en un integrado llamado BIOS (Basic Input Output System)
que est dentro de la mquina.

Este programa tiene almacenado la configuracin bsica del sistema y cuando


esta arranca realiza un autoexamen para verificar su correcto funcionamiento.
Uno de los ltimos comandos del BIOS es llamar al Sistema Operativo.
EL MS-DOS fue uno de los S.O. ms populares hace unos aos, pero tena el gran
inconveniente de no poder utilizar ms de 640 Kb de memoria, sin algn
manejador adicional de memoria, cmo el manejador de memoria extendida
(XMS) o el manejador de memoria expandida (EMS) que permite que se utilice el
mximo de memoria disponible para un microprocesador en particular. Otro
inconveniente muy importante es que era un S.O. que slo permita un usuario y
una sola tarea. (no poda correr dos programas a la vez.)
El Windows 3.0 y Windows 3.1 estaban basados en el DOS, por lo cual muchos
expertos no lo consideraban un verdadero Sistema Operativo, siendo su
capacidad de multitarea (hacer ms de una tarea) muy limitada.
Al salir al mercado el Windows 95, caus una autntica revolucin en los Sistemas
Operativos para PCs, pues era independiente del MS-DOS, aunque guardaba
compatibilidad con ste.
Se haba desarrollado en parte con cdigo de 32 bits a diferencia de los anteriores
que eran de 8 y 16 bits. Ahora el S.O. utilizaba una Tabla de Localizacin de
Archivos (File Alocation Table [FAT]) de 32 bits.
Esta diferencia permita utilizar con mayor eficiencia la capacidad de los discos
duros y permita entre otras cosas tener nombres de ms de 8 caracteres (hasta
256). (Se puede ver esta caractersticas en Win 95, 98, etc.)
Windows 98 es una mejora de Windows 95, casi totalmente
desarrollado con cdigo de 32 bits, mucho mas robusto y completo.
En Sistemas Operativos de Red existe el Windows NT con un interface de
usuario similar a Windows 95, la versin 4.0 de Windows NT es el equivalente al
Windows 95 y la versin 5.0 es una mejora.
Existen dos versiones: Windows NT Workstation, orientada a estaciones de
trabajo, ms potente que el Windows 95 o 98 y Windows NT Server, que se
utiliza en servidores de red.
Posteriormente aparecieron Windows 2000 server y Windows 2003 server
mas modernos y con muchas mejores prestaciones.
No hay que olvidar que existen sistemas operativos de Red muy robustos y
confiables como Unix y Linux (similar al Unix, pero de libre distribucin), que

desde su concepcin inicial son sistemas operativos de Red multiusuario (mas de


un usuario se conecta al S.O. a la vez) y multitarea (hace varias tareas a la vez).
Hay varias versiones de Linux. Entre ellas estn: Red Hat Linux, SuSE Linux,
LindowsOS, Mandrake, entre otros.

- Los programas hechos para reas especficas, como el Word, el PowerPoint,


AutoCAD, ORCAD, juegos, programas de antivirus, programas para navegar en
Internet, y una infinidad de opciones que se pueden encontrar en internet, etc.
- Algunos pequeos programas que vienen con muchos dispositivos adicionales
(hardware) para una computadora como tarjetas de mdem, tarjetas de de
sonido, etc.. Estos programas son llamados drivers (manejadores) que hacen
trabajar la tarjeta con la que vienen en forma correcta entre otros.
Como se puede deducir, Software y Hardware deben de funcionar en conjunto
para lograr que la computadora realice los trabajos para los que fue creada.
La evolucin del Hardware y Software es constante y se pueden ver los
progresos en estas dos reas observando los nuevos productos de Microsoft y
Google en el rea de software y de Cisco e Intel en el rea de hardware. Las
empresas antes mencionadas son slo un ejemplo de muchas empresas
representativas en el mercado.

http://www.unicrom.com/Cmp_hardwaresoftware.asp

Clasificacin de las computadoras / ordenadores


La clasificacin de las computadoras se realiza de acuerdo a la potencia que
tienen.
La potencia est definida por variables como la velocidad de
funcionamiento, capacidad de memoria, el ancho de la palabra, etc.
Nota: Palabra es un conjunto de informacin expresada en forma binaria (ceros y
unos, 0 y 1) y que se transmite dentro del sistema como una unidad de
informacin.
Esta palabra puede ser de 8, 16, 32, 64 bits o ms. A mayor nmero de bits, ms
potente es la computadora

Supercomputadoras
Las computadoras / ordenadores ms potentes de todas, muy rpida, de gran
longitud de palabra. Tienen en su gran mayora varios procesadores, trabajando
a la vez (en paralelo) y logran procesar miles de millones de operaciones por
segundo.
Se utilizan para realizar simulaciones de procesos muy complejos con una gran
cantidad de datos (anlisis del genoma humano, simulacin de explosiones
nucleares, predicciones meteorolgicas, etc.). Se instalan en ambientes
controlados debido a su gran generacin de calor.

Macrocomputadoras (Mainframes)
Computadoras de uso general, tambin se instalan en ambientes controlados.
Tiene gran capacidad de procesamiento y capacidad de manejo de puertos de
entrada y salida.
Por tener gran capacidad de almacenamiento, esta computadora es capaz de
tener conexin simultnea con muchas terminales. Se utiliza mucho en las
empresas de gran tamao como bancos, etc.. Es capaz de realizar varios millones
de operaciones por segundo.

Minicomputadoras
Las microcomputadoras aparecieron en el mercado con el propsito de dar
servicio a empresas e instituciones de tamao mas pequeo que las que utilizan
mainframes.
Tiene caractersticas parecidas a las de las mainframes, pero con menores
prestaciones en velocidad, tamao de memoria, capacidad de almacenamiento y
nmero de terminales que puede aceptar.

Estaciones de trabajo (Workstations)

Son computadoras que normalmente sirven para conectarse a una


computadora mas grande a travs de una red, con gran capacidad de
procesamiento.

Computadoras personales (PC)


Se llaman as a todas las como la computadoras IBM PC o compatibles y
modelos similares posteriores y a las computadoras Macintosh de APPLE y
modelos similares posteriores.
Son microcomputadoras que tienen bajo precio con gran disponibilidad de
hardware y software debido a su popularidad.
Dentro de este grupo se incluyen las computadoras porttiles como las
LapTops.
Tambin estan las NoteBooks que son un poco mas pequeas que las Laptops y
finalmente estn las PDA (Personal Digital Assistant - Asistente Digital Personal)
con muchas menos prestaciones que las computadoras personales anteriores.

Estructura de una computadora u ordenador

Unidad central de proceso


Tambin llamada CPU, o procesador del sistema.
Esta compuesto de las siguientes partes:
- Unidad de control: coordina las actividades de la computadora, ejecutando
programas en forma ordenada y interactuando con las unidades de entrada y
salida.
- Unidad aritmtico-lgica (ALU): como su nombre lo indica es la parte de la
CPU que se encarga de todos las operaciones aritmticas bsicas (suma, resta,
multiplicacin, divisin, etc.) y lgicas (las operaciones: O lgica, Y lgica,
Negacin, etc.)

Memoria
Es la parte de la computadora que almacena los programas (o parte de ellos) y
datos para que el programa que est en funcionamiento cumpla su tarea. Es por
este motivo que esta memoria es de gran velocidad.
Existen dos tipos de memoria:

- Memoria RAM: (Random Acces Memory) Memoria de acceso


aleatorio. En este tipo de memoria se puede escribir y leer, pero los
datos almacenados en ella desaparecern si se desconecta la
energa.
Hay diferentes tipos de memoria RAM, la esttica SRAM
(retiene los datos mientras haya energa) y la dinmica DRAM (va perdiendo el
dato que tiene almacenado y hay que refrescarlos frecuentemente), por este
motivo las SRAM son mas rpidas pero tienen menos capacidad que una DRAM
para un mismo dispositivo de memoria.
- VRAM: (Video RAM) Es un tipo especial de memoria RAM, que se utiliza en
adaptadores de video. Su principal diferencia es que puede ser accesada por dos
diferentes dispositivos en forma simultnea.
Esto permite que un monitor pueda acceder a la VRAM para actualizar la pantalla
mientras que el procesador grfico suministra nuevos datos. Permite mejores
rendimientos, pero es ms cara.
- RAMBUS: Esta memoria es exclusiva de las Pentium 4, y trabaja a una velocidad
de 400 a 800 Mhz del bus de datos

Tipos de presentacin de la memoria RAM


- SIMM: (Single In line Memory Module). Es un encapsulado que consta de un
circuito impreso pequeo con los chips de memoria y que se inserta generalmente
en un zcalo SIMM en la placa madre de la computadora.
Hay de dos tipos de 30 y de 72 pines. Los de 30 vienen en capacidades de 256K y
1Mb y ya casi no se usan. Los de 72 vienen en versiones de 4, 8, 16, 32 . Su
principal desventaja: trabajan en pares.
- DIMM: (Dual In line Memory Module). Igual que el anterior, pero se inserta en un
zcalo DIMM en la placa madre y utiliza un conector de 168 contactos. Hay de
varios tipos EDO, DRAM, SDRAM, PC100, PC133.
No se pueden mesclar DIMM y SIMM. Las DIMM EDO, DRAM. SDRAM trabajan de
66 a 83 Mhz, wel PC100 a 100 Mhz y el PC133 a 133 Mhz. Estos Mhz. se refieren a
la velocidad del bus de datos de la tarjeta madre.
El DIMM EDO trabaja a 45 nanosegundos, DRAM y SDRAM a 15 nanosegundos,
PC100 a 10 nanosegundos y PC133 a 7 nanosegundos. Mientras mas bajo los
nanosegundos ,as rpida la memoria.
- DIP: (Dual In line Package) memoria almacenada en un tipo de encapsulado
rectangular con dos filas de pines de conexin a cada lado. (antiguas)

Memorias DDR
Los mdulos de memoria DDR SDRAM son memorias tipo DIMM (184 contactos y
64 bits), con velocidades de trabajo que van de los 200 a los 400 Mhz. Este tipo de
memoria est siuendo sustituida por la memoria DDR2 (240 contactos y 64bits)

Memorias DDR2

Son mdulos tipo DIMM (240 contactos y 64 bits) y tienen unas velocidades de bus
de memoria real de entre 100MHz y 266MHz
La principal caracterstica de los mdulos de memoria DDR2 es que realizan 4
accesos por ciclo de reloj, lo que hace que la velocidad efectiva del bus de memoria
sea la multiplicacin de la velocidad del bus de memoria real por 4
Esta caracterstica duplica la velocidad del tipo DDR, y su consumo es casi la mitad
que de sta.

Microcontroladores PIC
Controladores y Microcontroladores
Un controlador es un dispositivo electrnico encargado de, valga la redundancia,
controlar uno o ms procesos.
Por ejemplo, el controlador del aire acondicionado, recoger la informacin de los
sensores de temperatura, la procesar y actuar en consecuencia.
Al principio, los controladores estaban formados exclusivamente por
componentes discretos. Ms tarde, se emplearon procesadores rodeados de
memorias, circuitos de E/S, sobre una placa de circuito impreso (PCB).
Actualmente, los controladores integran todos los dispositivos antes
mencionados en un pequeo chip. Esto es lo que hoy conocemos con el nombre de
microcontrolador.

Diferencia entre microcontrolador y microprocesador


Es muy habitual confundir los trminos de microcontrolador y
microprocesador, cayendo as en un error de cierta magnitud. Un
microcontrolador es, como ya se ha comentado previamente, un sistema
completo, con unas prestaciones limitadas que no pueden modificarse y que puede
llevar a cabo las tareas para las que ha sido programado de forma autnoma.
Un microprocesador, en cambio, es simplemente un componente que conforma
el microcontrolador, que lleva acabo ciertas tareas que analizaremos ms
adelante y que, en conjunto con otros componentes, forman un
microcontrolador.
Debe quedar clara por tanto la diferencia entre microcontrolador y
microprocesador: a modo de resumen, el primero es un sistema autnomo e
independiente, mientras que el segundo es una parte, cabe decir que esencial, que
forma parte de un sistema mayor.

SISTEMAS NUMERICOS

Los sistemas numricos son muy importantes en computacin, aqu veremos los
sistemas en base 2, 8 y 16 que son las que ms se utilizan en computacin; por supuesto
con la relacin entre la base 10 que es la que utilizamos los seres humanos.
SISTEMAS DE NUMERACIN
Un sistema de numeracin es un conjunto de smbolos y reglas que se utilizan para
representar y operar con cantidades. Sistemas Aditivos:
Los sistemas aditivos son aquellos que acumulan los simbolos de todas las unidades,
decenas como sean necesarios hasta completar el nmero. Una de sus caractersticas
es por tanto que se pueden poner los smbolos en cualquier orden, aunque en general se
ha preferido una determinada disposicin. Han sido de este tipo las numeraciones
egipcia, sumeria (de base 60), hitita, cretense, azteca (de base 20), romana y las
alfabticas de los griegos, armenios, judios y rabes.
Sistema Egipcio
Desde el tercer milenio A.C. los egipcios usaron un sistema deescribir los nmeros en
base diez utilizando los geroglficos de la figura para representar los distintos ordenes
de unidades.
Sistema Griego: El primer sistema de numeracin griego se desarroll hacia el 600
A.C. Era un sistema de base decimal que usaba los smbolos de la figura siguiente para
representar esas cantidades.
Para representar la unidad y los nmeros hasta el 4 se usaban trazos verticales. Para el 5,
10 y 100 las letras correspondientes a la inicial de la palabra cinco (pente), diez (deka) y
mil (khiloi). Por este motivo se llama a este sistema acrofnicos.
Sistemas Hbridos
En estos sistemas se combina el principio aditivo con el multiplicativo.
Sistema Chino:
La forma clsica de escritura de los nmeros en China se empez a usar desde el 1500
A.C. aproximadamente. Es un sistema decimal estricto que usa las unidades y las
distintas potencias de 10. Utiliza los ideogramas de la figura:

y usa la combinacin de los nmeros hasta el diez con la decena, centena, millar y
decena de millar para segn el principio multiplicativo representar 50, 700 3000. El
orden de escritura se hace fundamental, ya que 5 10 7 igual podra representar 57 que
75.
Sistema Babilnico:
Entre la muchas civilizaciones que florecieron en la antigua Mesopotmica se
desarrollaron distintos sistemas de numeracin. En el ssss A.C. se invent un sistema de
base 10, aditivo hasta el 60 y posicional para nmeros superiores
Sistema Maya
Los mayas idearon un sistema de base 20 con el 5 cmo base auxiliar. La unidad se
representaba por un punto. Dos, tres, y cuatro puntos servan para 2, 3 y 4. El 5 era una
raya horizontal, a la que se aadan los puntos necesarios para representar 6, 7, 8 y 9.
Para el 10 se usaban dos rayas, y de la misma forma se contina hasta el 20, con cuatro
rayas.
Un sistema de numeracin es un conjunto de reglas y smbolos que permiten representar
de forma nica los nmeros. Esta representacin posibilita la realizacin de sencillos
algoritmos para la ejecucin de operaciones aritmticas.
Los sistemas de numeracin usados en la actualidad son posicinales. El valor de una
cifra depende tanto de qu dgito es como de la posicin que ocupa en el nmero. Base:
Es el nmero de smbolos distintos que se utiliza para representar un nmero en un
sistema de numeracin. Entonces decimos que el sistema de numeracin es de esa base.
Los smbolos de una determinada base van desde el 0 hasta la base b-1.
Coeficiente: El coeficiente determina el valor de cada smbolo dependiendo de la
posicin que ocupe con respecto al punto decimal. Por lo tanto a estos sistemas de
numeracin los llamaremos sistemas de numeracin posicinales, porque el valor de
cada cifra depender del valor absoluto del smbolo y de la posicin relativa que ocupa
con respecto al punto decimal.
Los sistemas de numeracin actuales son sistemas posicinales, en los que el valor que
representa cada smbolo o cifra, depende de su valor absoluto y de la posicin relativa
que ocupa la cifra con respecto al resto.
En los sistemas de numeracin existe un elemento caracterstico que define el sistema y
se denomina base, siendo sta el nmero de smbolos que se utilizan para la
representacin.

Se entiende por base (b) de un sistema de numeracin al nmero de smbolos que se


utilizan para la representacin. Todos los sistemas usados actualmente usan una base n.
En un sistema de numeracin de base n existen n smbolos. Al escribir un nmero en
base n, el dgito d en la posicin i, de derecha a izquierda, tiene un valor.
En general, un nmero escrito en base n como dmdm 1d2d1 tiene un valor
El sistema decimal:
El sistema de numeracin decimal es un sistema posicional. La base del sistema de
numeracin decimal es 10 y est formado por los dgitos del 0 al 1. Un nmero en el
sistema de numeracin decimal lo podemos definir segn el teorema fundamental de la
numeracin de la siguiente forma. Numerob= x0b0+ x1b1 + x2b2 + . + xn-1bn-1 xi =
cifras b = datos n = nmero de cifras
El sistema binario:
El sistema binario o sistema de numeracin en base 2 es tambin un sistema de
numeracin posicional igual que el decimal, pero slo utiliza dos smbolos, el 0 y el
1. Por lo tanto para poder representar mayor nmero de informacin al tener menos
smbolos tendremos que utilizar ms cifras
Cuarteto: Nmero formado por 4 cifras en base 2 Bit: Bynary digit Byte: 8 bits
Kilobyte: 1024 bytes Megabyte: 1024 kilobytes Gigabyte: 1025 megabytes
Binario puro
El mtodo de representacin de enteros del binario puro consiste en pasar el nmero
entero sin signo a binario, con la particularidad de respetar siempre el tamao de la
representacin.
El paso de decimal a binario consiste en dividir por 2 sucesivamente hasta que el
cociente sea menor que la base: Con lo que queda 1110 = 10112
Sistema Octal:
Es un sistema de base 8, es decir, con tan solo ocho dgitos posibles, 0 a 7. El paso de
octal a decimal se realiza multiplicando cada dgito por su peso: 278 = 2 81 + 7 80 =
2310 El paso inverso consiste en dividir por la base (8): Con lo que queda 678 = 10310
Sistema Hexadecimal:

Sin embargo el sistema de numeracin ms utilizado es el hexadecimal, el cual consta


de 16 dgitos diferentes {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}.
El paso de hexadecimal a decimal es anlogo a los anteriores: 12316 = 1 162 + 2 161
+ 3 160 = 29110 Al igual que el paso de decimal a hexadecimal: Con lo que queda
2910 = 12316

Organizacin de datos
En trminos matemticos un valor puede tomar un nmero arbitrario de bits, pero
las computadoras por el contrario, generalmente trabajan con un nmero especfico
de bits, desde bits sencillos pasando por grupos de cuatro bits (llamados nibbles),
grupos de ocho bits (bytes), grupos de 16 bits (words, palabras) y an ms.
Como veremos mas adelante, existe una buena razn para utilizar ste orden.

Bits
La ms pequea cantidad de informacin en una computadora binaria es el bit, ste
solamente es capaz de representar dos valores diferentes, sin embargo sto no
significa que exista una cantidad muy reducida de elementos representables por un
bit, todo lo contrario, la cantidad de elementos que se pueden representar con un
slo bit es infinito, considere sto, podemos representar por ejemplo, cero uno,
verdadero falso, encendido apagado, masculino femenino. Ms an, no
estamos limitados a representar elementos antagnicos, un bit sencillo puede
representar cualesquiera dos valores, por ejemplo, blanco 432, perro caliente. Y
para ir an ms lejos, dos bits adyacentes pueden representar cosas
completamente independientes entre s, lo que se debe tener en cuenta es que un
bit sencillo slo puede representar dos cosas a la vez. Esta caracterstica otorga a
las computadoras binarias un campo infinito de aplicaciones.

Nibbles

Un nibble es una coleccin de cuatro bits, sto no representara una estructura


interesante si no fuera por dos razones: El Cdigo Binario Decimal (BCD por sus
siglas en ingls) y los nmeros hexadecimales. Se requieren cuatro bits para
representar un slo dgito BCD hexadecimal. Con un nibble se pueden representar
16 valores diferentes, en el caso de los nmeros hexadecimales, cuyos valores 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, y F son representados con cuatro bits. El BCD
utiliza diez dgitos diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) e igualmente se requiere
de cuatro bits. De hecho se puede representar 16 elementos diferentes con un slo
nibble pero los dgitos hexadecimales y BCD son los principales representados por
un nibble.

Bytes
Todava se puede decir que el byte es la estructura de datos ms importante
utilizada por los procesadores 80x86. Un byte est compuesto de ocho bits y es el
elemento de dato ms pequeo direccionable por un procesador 80x86, sto
significa que la cantidad de datos ms pequea a la que se puede tener acceso en
un programa es un valor de ocho bits. Los bits en un byte se enumeran del cero al
siete de izquierda a derecha, el bit 0 es el bit de bajo orden el bit menos
significativo mientras que el bit 7 es el bit de alto orden el bit ms significativo.
Nos referimos al resto de los bits por su nmero. Observe que un byte est
compuesto de dos nibbles.
Como un byte contiene ocho bits, es posible representar 28, 256 valores
diferentes. Generalmente utilizamos un byte para representar valores numricos en
el rango de 0 ~ 255, nmeros con signo en el rango de -128 ~ +127, cdigos de
caracter ASCII y otros tipos de datos especiales que no requieran valores diferentes
mayores que 256.

Words (palabras)
Una palabra (word) es un grupo de 16 bits enumerados de cero hasta quince, y al
igual que el byte, el bit 0 es el bit de bajo orden en tanto que el nmero quince es
el bit de alto orden. Una palabra contiene dos bytes, el de bajo orden que est
compuesto por los bits 0 al 7, y el de alto orden en los bits 8 al 15. Naturalmente,
una palabra puede descomponerse en cuatro nibbles. Con 16 bits es posible
representar 216 (65,536) valores diferentes, stos podran ser el rengo comprendido
entre 0 y 65,535, como suele ser el caso, de -32,768 hasta +32,767. Tambin
puede ser cualquier tipo de datos no superior a 65,536 valores diferentes.

El Sistema de Numeracin Binario (base 2)


El Sistema Binario, a diferencia del Sistema Decimal,
donde son permitidos 10 cifras (del 0 al 9), slo necesita
dos (2) cifras: el "0" y el "1".
El Sistema de Numeracin Binario es de
especial importancia en la electrnica digital, donde slo
son posibles dos valores: el "1" o valor de voltaje "alto" y
el "0" o nivel de voltaje "bajo".
Los valores de "1" y "0" se asocian con:
- "nivel alto" y "nivel bajo",
- "cerrado" y "abierto",
- "encendido" y "apagado",
- "conectado" y "desconectado",
- "high" y "low",
- "on" y "off",
etc.. Ver Introduccin a los sistemas digitales
Analizar el grfico
Un nmero en el Sistema de Numeracin Binario se divide en cifras con
diferente peso: 1, 2, 4, 8, 16, 32, 64, 128,.... etc.
Cada peso tiene asociado una potencia de 2. En el primer nmero (de derecha a
izquierda) la potencia de dos es 20, en el segundo nmero la potencia de dos es 21
y as hasta el ltimo nmero del lado izquierdo.
Entonces para formar el nmero 10102: (el nmero 10 en binario)

Cdigo BCD
Para poder compartir informacin, que est en formato digital, es comn utilizar
las representaciones binaria y hexadecimal.
Hay otros mtodos de representar informacin y una de ellas es el
cdigo BCD.
Con ayuda de la codificacin BCD es ms fcil ver la relacin que hay entre un
nmero decimal (base 10) y el nmero correspondiente en binario (base 2)
El cdigo BCD utiliza 4 dgitos binarios (ver en los dos ejemplos que siguen)
para representar un dgito decimal (0 al 9). Cuando se hace conversin de binario
a decimal tpica no hay una directa relacin entre el dgito decimal y el dgito
binario.
Ejemplo 1:
Conversin directa tpica entre un nmero en decimal y uno binario.
8510 = 10101012
La representacin el mismo nmero decimal en cdigo BCD se muestra a la
derecha
Ejemplo 2
Conversin directa tpica entre un nmero en decimal y uno binario.
56810 = 10001110002
La representacin el mismo nmero decimal en cdigo BCD se muestra a la
derecha
Como se puede ver, de los dos ejemplos anteriores, el nmero equivalente decimal
no se parece a la representacin en cdigo BDC.
Para poder obtener el equivalente cdigo BCD de cada cifra de los nmeros
anteriores, se asigna un "peso" o "valor" segn la posicin que ocupa.

Este "peso" o "valor" sigue el siguiente orden: 8 - 4 - 2 - 1. (Es un cdigo


ponderado)
Del ltimo ejemplo se observa que el nmero 5 se representa como: 0 1 0
1.
el primer "0" corresponde al 8,
el primer "1" corresponde a 4,
el segundo "0" corresponde a 2, y...
el segundo "1" corresponde a 1.
De lo anterior:0 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 5
Al cdigo BCD que tiene los "pesos" o "valores" antes descritos se le llama:
Cdigo BCD natural.
El cdigo BCD cuenta como un nmero binario normal del 0 al 9, pero del diez
(1010) al quince (1111) no son permitidos pues no existen, para estos nmeros,
el equivalente de una cifra en decimal.
Este cdigo es utilizado, entre otras aplicaciones, para la representacin de las
cifras de los nmeros decimales en displays de 7 segmentos.
Notas: Los subndices 2 y 10, se utilizan para acotar, en el primer caso que el
nmero es binario y en el segundo caso que el nmero es decimal.

SISTEMA BINARIO, OCATAL Y HEXADECIMAL

El sistema binario o sistema de numeracin en base 2 es tambin un sistema de


numeracin posicional igual que el decimal, pero slo utiliza dos smbolos, el 0 y el
1. Por lo tanto para poder representar mayor nmero de informacin al tener menos
smbolos tendremos que utilizar ms cifras:
Bit: 0 1
Cuarteto: Nmero formado por 4 bits
Byte: 8 bits
Kilobyte: 1024 bytes
Megabyte: 1024 kilobytes
Gigabyte: 1025 megabytes
Un nmero es sistema binario es por lo tanto una secuencia de bits, as por ejemplo:

11101001 2

es un nmero en base 2 y representa el nmero:

1 * 27 + 1 * 26 + 1 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 0 * 21 + 1 * 21 = 128 +
64 + 32 + 0 + 8 + 0 + 0 + 1 = 233
..::[EL SISTEMA OCTAL]::..
Es un sistema de base 8, es decir, con slo ocho smbolos distintos 0,1,2,3,4,5,6,7
.
Por ejemplo:

40712

es un nmero en base 8 y representa el nmero:

\large 4 \times 8^4 + 0 \times 8^3 + 7 \times 8^2 + 1 \times 8^1 +


2 \times 8^0 = 4 \times 4094 + 0 \times 512 + 7 \times 64 + 1 \times 8
+ 2 \times 1 = 16384 + 0 + 448 + 8 + 2 = 16842

Los nmeros octales pueden construirse a partir de nmeros binarios agrupando cada
tres dgitos consecutivos de estos ltimos (de derecha a izquierda) y obteniendo su valor
decimal.
Por ejemplo, el nmero binario para 74 (en decimal) es 1001010 (en binario), lo
agruparamos como 1 001 010. De modo que el nmero decimal 74 en octal es 112.
En informtica, a veces se utiliza la numeracin octal en vez de la hexadecimal. Tiene la
ventaja de que no requiere utilizar otros smbolos diferentes de los dgitos.
Es posible que la numeracin octal se usara en el pasado en lugar de la decimal, por
ejemplo, para contar los espacios interdigitales o los dedos distintos de los pulgares.
Esto explicara porqu en latn nueve (novem) se parece tanto a nuevo (novus). Podra
tener el significado de nmero nuevo. [editar]
Fracciones
La numeracin octal es tan buena como la binaria y la hexadecimal para operar con
fracciones, puesto que el nico factor primo para sus bases es 2.
Resultado en
Fraccion Octal
octal
1/2

1/2

0,4

1/3

1/3

0,25252525
peridico

1/4

1/4

0,2

1/5

1/5

0,14631463

peridico
1/6

1/6

0,125252525
peridico

1/7

1/7

0,111111
peridico

1/8

1/10 0,1

1/9

1/11

0,07070707
peridico

1/10

1/12

0,063146314
peridico

Tabla de la suma en base 8:

+0

1 2 3 4 5 6 7

0 0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7 10
2 2 3 4 5 6 7 10 11
3 3 4 5 6 7 10 11 12
4 4 5 6 7 10 11 12 13
5 5 6 7 10 11 12 13 14
6 6 7 10 11 12 13 14 15
7 7 10 11 12 13 14 15 16
Tabla de la multiplicacin en base 8:

*01

2 3 4 5 6 7

0 00 0 0 0 0 0 0
1 01 2 3 4 5 6 7
2 0 2 4 6 10 12 14 16
3 03

6 11 14 17 22 25

4 0 4 10 14 20 24 30 34
5 0 5 12 17 24 31 36 43
6 0 6 14 22 30 36 44 52
7 0 7 16 25 34 43 52 61
El sistema de numeracin ms utilizado actualmente en computacin es el hexadecimal
o base 16, el cual consta de 16 dgitos smbolos 0,

1, 2, 3, 4, 5, 6, 7, 8, 9, A,

B, C, D, E y F . El sistema hexadecimal un sistema de numeracin vinculado a la


informtica, ya que los ordenadores interpretan los lenguajes de programacin en bytes,
que estn compuestos de ocho dgitos. A medida de que los ordenadores y los

programas aumentan su capacidad de procesamiento, funcionan con mltiplos de ocho,


como 16 o 32. Por este motivo, el sistema hexadecimal, de 16 dgitos, es un estndar en
la informtica.
Como nuestro sistema de numeracin slo dispone de diez dgitos, debemos incluir seis
letras para completar el sistema.
Estas letras y su valor en decimal son: A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15.
El sistema hexadecimal es posicional y por ello el valor numrico asociado a cada signo
depende de su posicin en el nmero, y es proporcional a las diferentes potencias de la
base del sistema que en este caso es 16.
Veamos un ejemplo numrico: 3E0,A (16) = ( 316
) + ( E16 ) + ( 0160 ) + ( A161 ) = ( 3256 ) + ( 1416 ) +
( 01 ) + ( 100,0625 ) = 992,625

La utilizacin del sistema hexadecimal en los ordenadores, se debe a que un dgito


hexadecimal representa a cuatro dgitos binarios (4 bits = 1 nibble), por tanto dos dgitos
hexadecimales representaran a ocho dgitos binarios (8 bits = 1 byte) que como es
sabido es la unidad bsica de almacenamiento de informacin. Por ejemplo:

2A703

es un nmero en base 16 y representa el nmero:

16

Tabla de la suma en base 16:

0 1 2 3 4 5 6 7 8 9 A B C D E

0 0 1 2 3 4 5 6 7 8 9 A B C D E

1 1 2 3 4 5 6 7 8 9 A B C D E
2 2 3 4 5 6 7 8 9 A B C D E
3 3 4 5 6 7 8 9 A B C D E

F 10

F 10 11

F 10 11 12

4 4 5 6 7 8 9 A B C D E F 10 11 12 13
5 5 6 7 8 9 A B C D E F 10 11 12 13 14
6 6 7 8 9 A B C D E F 10 11 12 13 14 15
7 7 8 9 A B C D E F 10 11 12 13 14 15 16
8 8 9 A B C D E F 10 11 12 13 14 15 16 17
9 9 A B C D E F 10 11 12 13 14 15 16 17 18
A A B C D E F 10 11 12 13 14 15 16 17 18 19
B B C D E F 10 11 12 13 14 15 16 17 18 19 1A

C C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B
D D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C
E E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D
F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E

Tabla de la multiplicacion en base 16:

8 A C E 10 12 14 16 18 1A 1C 1E 20

9 C F 12 15 18 1B 1E 21 24 27 2A 2D 30

C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40

7 8 9 A B C D E

10

5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 50
6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 60
7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69 70
8 10 18 20 28 30 38 40 48 50 58 60 68 70 78 80
9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90
A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 A0
B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5 B0
C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 C0
D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 D0
E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 E0
F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 F0
10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 100
Tabla de los primeros 16 nmeros
Decimal Binario Octal Hexadecimal
0

10

11

100

101

110

111

1000

10

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17

Hacer los ejercicios del 5 al 16 Ejercicio MCI 1

<=

Tema Anterior: 1.1 Sistema Decimal

=>

Siguiente Tema: 1.3 Conversiones

Regresar al TEMARIO: Matematicas para


Computacion
Orta Contreras Pedro
Perez Arambula Juan Jose
Materias: Matematicas Para Computacion
Representacin
Un nmero binario puede ser representado por cualquier secuencia de bits (dgitos
binarios), que a su vez pueden ser representados por cualquier mecanismo capaz de
estar en dos estados mutuamente exclusivos. Las secuencias siguientes de smbolos
podran ser interpretadas todas como el mismo valor binario numrico:
1 0 1 0 0 1 1 0 1 0
| - | - - | | - | x o x o o x x o x o
y n y n n y y n y n

El valor numrico representado en cada caso depende del valor asignado a cada
smbolo. En un ordenador, los valores numricos pueden ser representados por dos
voltajes diferentes y tambin se pueden usar polaridades magnticas sobre un disco
magntico. Un positivo, s, o sobre el estado no es necesariamente el equivalente
al valor numrico de uno; esto depende de la arquitectura usada.
De acuerdo con la representacin acostumbrada de cifras que usan nmeros rabes, los
nmeros binarios comnmente son escritos usando los smbolos 0 y 1. Cuando son

escritos, los nmeros binarios son a menudo subindicados, prefijados o sufijados para
indicar su base, o la raz. Las notaciones siguientes son equivalentes:
100101 binario (declaracin explcita de formato)
100101b (un sufijo que indica formato binario)
100101B (un sufijo que indica formato binario)
bin 100101 (un prefijo que indica formato binario)
1001012 (un subndice que indica base 2 (binaria) notacin)
%100101 (un prefijo que indica formato binario)
0b100101 (un prefijo que indica formato binario, comn en lenguajes de
programacin)
Sistema Octal.Representar un nmero en sistema binario puede ser bastante difcil de leer, as que se
cre el sistema octal. En el sistema Octal (base 8), slo se utilizan 8 cifras
(0,1,2,3,4,5,6,7)
Este Sistema de numeracin una vez que se llega a la cuenta 7 se pasa a 10, etc.
Cuenta hecha en octal: 0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21,.. se puede
observar que en este sistema numrico no existen los nmeros: 8 y 9
El sistema de numeracin octal es tambin muy usado en la computacin por tener una
base que es potencia exacta de 2 o de la numeracin binaria. Esta caracterstica hace que
la conversin a binario o viceversa sea bastante simple. El sistema octal usa 8 dgitos
(0,1,2,3,4,5,6,7) y tienen el mismo valor que en el sistema de numeracin decimal.
Fracciones en Hexadecimal.Fraccion Octal

Resultado en
octal

1/2

1/2

0,4

1/3

1/3

0,25252525
peridico

1/4

1/4

0,2

1/5

1/5

0,14631463
peridico

1/6

1/6

0,125252525
peridico

1/7

1/7

0,111111
peridico

1/8

1/10 0,1

1/9

1/11

0,07070707
peridico

1/10

1/12

0,063146314
peridico

Sistema Hexadecimal.El sistema hexadecimal, a veces abreviado como hex, es el sistema de numeracin
posicional de base 16 empleando por tanto 16 smbolos. Su uso actual est muy
vinculado a la informtica y ciencias de la computacin, pues los computadores suelen
utilizar el byte u octeto como unidad bsica de memoria
Tabla del Sistema Decimal, Binario, Octal y Hexadecimal.Decimal Binario Octal Hexadecimal
0

10

11

100

101

110

111

1000

10

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17

ARITMTICA BINARIA
Operaciones elementales con nmeros binarios
Suma de nmeros binarios
Resta de nmeros binarios

Complemento a dos
Complemento a uno
Restar con el complemento a dos

Multiplicar nmeros binarios


Dividir nmeros binarios
La Unidad Aritmtico Lgica, en la CPU del procesador, es capaz de
realizar operaciones aritmticas, con datos numricos expresados en el
sistema binario. Naturalmente, esas operaciones incluyen la adicin, la
sustraccin, el producto y la divisin. Las operaciones se hacen del
mismo modo que en el sistema decimal, pero debido a la sencillez del
sistema de numeracin, pueden hacerse algunas simplificaciones que
facilitan mucho la realizacin de las operaciones.

Suma en binario
Para aprender a sumar, con cinco o seis aos de edad, tuviste que
memorizar las 100 combinaciones posibles que pueden darse al sumar
dos dgitos decimales. La tabla de sumar, en binario, es mucho ms
sencilla que en decimal. Slo hay que recordar cuatro combinaciones
posibles:

0+1

Las sumas 0 + 0, 0 + 1 y 1 + 0 son evidentes:


0+0=0
0+1=1
1+0=1
Pero la suma de 1+1, que sabemos que es 2 en el sistema decimal, debe
escribirse en binario con dos cifras (10) y, por tanto 1+1 es 0 y se
arrastra una unidad, que se suma a la posicin siguiente a la izquierda.
Veamos algunos ejemplos:
010 + 101 = 111 210 + 510 = 710
001101 + 100101 = 110010 1310 + 3710 = 5010
1011011 + 1011010 = 10110101 9110 + 9010 = 18110
110111011 + 100111011 = 1011110110 44310 + 31510 = 75810

Ejercicio 1:
Realiza las siguientes sumas de nmeros binarios:

111011 + 110
111110111 + 111001
10111 + 11011 + 10111

Sustraccin en binario

La tcnica de la resta en binario es, nuevamente, igual que la misma


operacin en el sistema decimal. Pero conviene repasar la operacin de
restar en decimal para comprender la operacin binaria, que es ms
sencilla. Los trminos que intervienen en la resta se llaman minuendo,
sustraendo y diferencia.

1+1

Las restas 0 - 0, 1 - 0 y 1 - 1 son evidentes:


00=0
10=1
11=0
La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una
unidad prestada de la posicin siguiente: 10 - 1, es decir, 210 110 = 1.
Esa unidad prestada debe devolverse, sumndola, a la posicin
siguiente. Veamos algunos ejemplos:
111 101 = 010 710 510 = 210
10001 01010 = 00111 1710 1010 = 710
11011001 10101011 = 00101110 21710 17110 = 4610
111101001 101101101 = 001111100 48910 36510 = 12410

Ejercicio 2:
Realiza las siguientes restas de nmeros binarios y
comprueba los resultados convirtindolos al sistema
decimal:

111011 - 110

111110111 - 111001
1010111 - 11011 10011
A pesar de lo sencillo que es el procedimiento de restar, es facil
confundirse. Tenemos interiorizado el sistema decimal y hemos
aprendido a restar mecnicamente, sin detenernos a pensar en el
significado del arrastre. Para simplificar las restas y reducir la
posibilidad de cometer errores hay varias soluciones:

i.

Dividir los nmeros largos en grupos. En el siguiente ejemplo,


vemos cmo se divide una resta larga en tres restas cortas:
100110011101

1001

1001

1101

010101110010

0101

0111

0010

010000101011

0100

0010

1011

Calculando el complemento a dos del sustraendo

Complemento a dos
El complemento a dos de un nmero
define como:

N, compuesto por n bits, se

C2N = 2n N
Veamos un ejemplo: tomemos el nmero N = 1011012, que tiene 6 bits,
y calculemos su complemento a dos:

N = 4510

n=6

26 = 64

y, por tanto: C2N = 64 45 = 19 =


0100112

Ejercicio 3:
Calcula el complemento a dos de los siguientes
nmeros:

11001, 10001011, 110011010

ii.

Complemento a uno

El complemento a uno de un nmero

N, compuesto por n bits es, por

definicin, una unidad menor que el complemento a dos, es decir:

C1N = C2N - 1
y, por la misma razn:

C2N = C1N + 1
Calculemos el complemento a uno del mismo nmero del ejemplo
anterior:
siendo N = 101101, y su complemento a dos C2N = 010011

C1N = C2N 1 = 010011 000001 = 010010


C1N = 010010
Da la sensacin de que calcular el complemento a uno no es ms que
una forma elegante de comlicarse la vida, y que no va a ser ms sencillo
restar utilizando el complemento a dos, porque el procedimiento para
calcular el complemento a dos es ms difcil y laborioso que la propia
resta. Pero es mucho ms sencillo de lo que parece.
En realidad, el complemento a uno de un nmero binario es el nmero
resultante de invertir los UNOS y CEROS de dicho nmero. Por ejemplo
si:

N = 110100101
obtenemos su complemento a uno invirtiendo ceros y unos, con lo que
resulta:

C1N = 001011010
y su complemento a dos es:

C2N = C1N + 1 = 001011011

es muy fcil!
Veamos otro ejemplo de clculo de complementos. Sea:

N = 0110110101
El complemento a uno es:

C1N = 1001001010
y el complemento a dos es:

C2N = 1001001011

iii.

Restar en binario usando el complemento a dos

Y, por fin, vamos a ver cmo facilita la resta el complemento. La resta


binaria de dos nmeros puede obtenerse sumando al minuendo el
complemento a dos del sustraendo. Veamos algunos ejemplos:

Primer ejemplo:

Hagamos la siguiente resta, 91 46 = 45, en binario:


1011011 0101110 = 0101101
Tiene alguna dificultad, cuando se acumulan los arrastres a la resta
siguiente. Pero esta misma resta puede hacerse como una suma,
utilizando el complemento a dos del sustraendo:

1011011 + 1010010 = 0101101


En el resultado de la suma nos sobra un bit, que se desborda por la
izquierda. Pero, como el nmero resultante no puede ser ms largo que
el minuendo, el bit sobrante se desprecia.

Segundo ejemplo:
Hagamos esta otra resta, 219 23 = 196, utilizando el complemento a
dos:

21910 = 110110112,
2310 = 000101112
C223 = 11101001
El resultado de la resta ser:

11011011 + 11101001 =

111000100
Y, despreciando el bit que se desborda por la izquierda, llegamos al
resultado correcto:

110001002 = 19610
Qu fcil!

Ejercicio 4:
Haz las siguientes restas binarias utilizando la
tcnica del complemento a dos. Al terminar,
comprueba los resultados haciendo la resta en el
sistema decimal:

11010001101 1000111101
10110011101 - 1110101

Multiplicacin binaria
La multiplicacin en binario es ms fcil que en cualquier otro sistema
de numeracin. Como los factores de la multiplicacin slo pueden ser
CEROS o UNOS, el producto slo puede ser CERO o UNO. En otras
palabras, las tablas de multiplicar del cero y del uno son muy fciles de
aprender:

En un ordenador, sin embargo, la operacin de multiplicar se realiza


mediante sumas repetidas. Eso crea algunos problemas en la
programacin porque cada suma de dos UNOS origina un arrastre, que
se resuelven contando el nmero de UNOS y de arrastres en cada
columna. Si el nmero de UNOS es par, la suma es un CERO y si es
impar, un UNO. Luego, para determinar los arrastres a la posicin
superior, se cuentan las parejas de UNOS.
Veamos, por ejemplo, una multiplicacin:

Para comprobar que el resultado es correcto, convertimos los factores y


el resultado al sistema decimal:

3349 * 13 = 43537
correcto!

Ejercicio 5:
Haz las siguientes multiplicaciones binarias. Al
terminar, comprueba los resultados haciendo las
multiplicaciones en el sistema decimal:

10110101000101 x 1011
10100001111011 x 10011

Divisin binaria

Igual que en el producto, la divisin es muy fcil de realizar, porque no


son posibles en el cociente otras cifras que UNOS y CEROS.
Consideremos el siguiente ejemplo, 42 : 6 = 7, en binario:

Se intenta dividir el dividendo por el divisor, empezando por tomar en


ambos el mismo nmero de cifras (100 entre 110, en el ejemplo). Si no
puede dividirse, se intenta la divisin tomando un dgito ms (1001
entre 100).
Si la divisin es posible, entonces, el divisor slo podr estar contenido
una vez en el dividendo, es decir, la primera cifra del cociente es un
UNO. En ese caso, el resultado de multiplicar el divisor por 1 es el
propio divisor. Restamos las cifras del dividendo del divisor y bajamos la
cifra siguiente.
El procedimiento de divisin contina del mismo modo que en el
sistema decimal.

Ejercicio 5:
Haz las siguientes divisiones binarias. Al terminar,
comprueba los resultados haciendo las divisiones en
el sistema decimal:

10110101000101 : 1011
10100001111011 : 10011

EJERCICIOS adicionales
1. Realiza las siguientes sumas de nmeros octales:
365 + 23
2732 + 1265
65 + 1773
2. Suma los siguientes nmeros hexadecimales:
17A + 3C
20F5 + 31B
2E70C + 1AA7F
3. Resta los siguientes nmeros octales:
365 - 23
2732 - 1265
1773 65
4. Realiza las siguientes restas de nmeros hexadecimales:
17A - 3C
20F5 - 31B
2E70C 1AA7F

Operaciones lgicas

Existen varias operaciones aritmticas que se pueden ejecutar en nmeros binarios


y hexadecimales, por ejemplo, podemos sumar, restar, multiplicar, dividir y otras
operaciones aritmticas ms, aunque es aconsejable que Usted sepa ejecutar stas
operaciones a mano, es ms recomendable que haga uso de una calculadora
apropiada, bsicamente para evitar errores ya que nuestro pensamiento est
condicionado por aos al sistema numrico de base 10. Por otra parte, al intentar
ejecutar una operacin aritmtica en formato binario es fcil caer en errores debido
a la verbosidad mencionada, en ste caso es recomendable que primero haga la
conversin a formato hexadecimal, ejecute las operaciones necesarias y finalmente
vuelva a convertir el resultado a formato binario.

Operaciones lgicas en bits


Existen cuatro operaciones principales que Usted puede ejecutar en nmeros
binarios y hexadecimales: AND, OR, XOR (OR exclusivo), y NOT. Al contrario de
las operaciones aritmticas, no se requiere calculadora para ejecutar stas
operaciones, por lo general es ms fcil y rpido ejecutarlas a mano que valiendose
de una calculadora. La operacin lgica AND es como sigue:
0
0
1
1

and
and
and
and

0
1
0
1

=
=
=
=

0
0
0
1

Las operaciones lgicas se pueden representar con una tabla llamada tabla de
verdad, es parecida a las tablas aritmticas que sirven para sumar multiplicar, la
columna de la izquierda y el rengln superior representan los valores de entrada de
la operacin especificada, el valor encontrado en la interseccin de la columna y el
rengln para un particular par de valores de entrada es el resultado de adicionar
(ANDing) ambos valores. En palabras comunes, la operacin AND se describe as,
"si el primer valor y (and) el segundo valor son 1, el resultado es 1, caso contrario
el resultado es 0".
AND

Un hecho importante acerca de la operacin lgica AND es que se puede utilizar


para forzar un resultado a cero, si uno de los operandos es cero, el resultado es
siempre cero independientemente del otro operando, esto se puede verificar en la
tabla de verdad de arriba en donde tanto el rengln como la columna que contienen
ceros el resultado es cero, por el contrario, si uno de los operandos contiene 1, el
resultado es exctamente el valor del otro operando. sta caracterstica de la
operacin lgica AND es muy importante, particularmente con cadenas de bits en
donde deseamos forzar algn bit individual de la cadena a cero.
El operador lgico OR se define as:
0
0
1
1

OR
OR
OR
OR

0
1
0
1

=
=
=
=

0
1
1
1

La tabla de verdad tiene la siguiente forma:

OR

En palabras decimos: si el primero de los operandos (OR) el segundo de los


operandos ( ambos) es 1, el resultado es 1, de lo contrario el resultado es 0. A
sta operacin lgica tambin se le conoce como OR inclusivo. Si uno de los
operandos es uno, el resultado es siempre uno independientemente del valor del
segundo operando, si uno de los operandos es cero, el resultado es siempre el valor
del segundo operando. sto es importante como veremos ms adelante.
La operacin lgica XOR (OR exclusivo) se define as:
0
0
1
1

XOR
XOR
XOR
XOR

0
1
0
1

=
=
=
=

0
1
1
0

La tabla de verdad es la siguiente:


XOR

Si el primer operando el segundo operando pero no ambos, es uno, el resultado


es uno, de lo contrario el resultado es cero. Si uno de los operandos en la operacin
lgica OR exclusivo es uno, el resultado es siempre el inverso del otro operando.
sta caracterstica le permite invertir bits selectivamente en una cadena de bits.
El operador lgico NOT acepta solamente un operando y est definido como:
NOT 0 = 1
NOT 1 = 0
La tabla de verdad es la siguiente:
NOT

Operaciones lgicas en nmeros binarios y cadenas de


bits
Como dijimos en la seccin previa, las funciones lgicas trabajan slo con
operandos de un solo bit, como las computadoras utilizan grupos de ocho, diecisis
treinta y dos bits, necesitamos extender la definicin de stas funciones para
trabajar con ms de dos bits. Las funciones lgicas en los procesadores 80x86
operan en una base de bit por bit (en ingls es bitwise). Dados dos valores en
determinada posicin, las funciones producen el resultado de la respectiva posicin,
por ejemplo, para calcular la operacin lgica AND en los siguientes dos nmeros
de ocho bits se debe ejecutar la operacin lgica AND en cada columna,
independientemente de las dems:

1011 0101
1110 1110
--------1010 0100
sta forma de ejecutar bit por bit (bitwise) puede fcilmente ser aplicada a otras
operaciones lgicas. Como hemos definido las operaciones lgicas en trminos de
valores binarios encontrar que es mucho ms fcil de sta manera que utilizando
otras bases, por tanto es recomendable hacer la conversin a formato binario.

Nmeros con signo y sin signo


Hasta ste momento, hemos tratado a los nmeros binarios como valores sin signo,
el nmero binario ...00000 representa al cero, ...00001 representa al uno, ...00010
representa al dos, y as seguido, pero Qu hay con los nmeros negativos? En sta
seccin discutiremos cmo representar nmeros negativos utilizando el sistema de
numeracin binario.
Para representar nmeros con signo utilizando el sistema de numeracin binario
tenemos que colocar una restriccin a nuestros nmeros, stos deben tener un
nmero finito y fijo de bits. En lo que concierne a los procesadores 80x86 sta
restriccin no es muy importante, despus de todo, los 80x86 slo pueden
direccionar un nmero finito de bits. Para nuestros propsitos limitaremos el
nmero de bits a ocho, 16, 32 otro nmero pequeo de bits.
Con un nmero fijo de bits slo podemos representar un cierto nmero de objetos,
por ejemplo, con ocho bits slo podemos representar 256 objetos diferentes. Los
valores negativos son objetos por su propio derecho al igual que los nmeros
positivos, por tanto necesitamos utilizar algunos de los 256 valores diferentes para
representar a los nmeros negativos, en otras palabras, utilizaremos algunos de los
nmeros positivos para representar nmeros negativos, y an ms, asignaremos la
mitad de las posibles combinaciones para los nmeros negativos y la otra mitad
para los nmeros positivos. As podemos representar los valores negativos que van
del -128...-1 y los valores positivos del 0...127 con un solo byte de ocho bits. Con
una palabra de 16 bits podemos representar valores en el rango de -32,768 hasta
+32,767. Con una palabra doble de 32 bits se pueden representar valores que van
de -2,147,483,648 hasta +2,147,483,647. En general, con n bits podemos
representar los valores con signo en el rango comprendido entre -2n-1 hasta 2n-1-1.
Bien, Cmo podemos representar valores negativos? Existen muchas formas pero
los procesadores 80x86 utilizan la notacin de complemento de dos, en ste
sistema, el bit de alto orden de un nmero es el bit de signo. Si el bit de alto orden
es cero el nmero es positivo, si el bit de alto orden es uno, el nmero es negativo.
En el caso de un nmero positivo, ste es almacenado como un valor binario
estndar, pero si el nmero es negativo ste es almacenado en la forma de
complemento de dos, para sto se utiliza el siguiente algoritmo:
1. Se invierten todos los bits en el nmero, es decir, se aplica la funcin lgica
NOT.
2. Se agrega uno al resultado invertido.
Por ejemplo, para calcular el equivalente en ocho bits de -5:

0000 0101

cinco (en binario)

1111 1010
1111 1011

Se invierten todos los bits.


Se suma uno para obtener el resultado.

Si tomamos el valor de menos cinco y le ejecutamos la operacin de complemento


de dos obtenemos el valor original, como es de esperarse:

1111 1011
0000 0100
0000 0101

complemento de dos para -5.


se invierten todos los bits.
se suma uno para obtener el resultado (+5).

Operaciones de corrimiento y rotacin


Otro juego de operaciones lgicas que podemos aplicar a cadenas de bits son las
operaciones de corrimiento y rotacin, stas dos categorias pueden dividirse en
corrimiento a la izquierda, rotacin a la izquierda, corrimiento a la derecha y
rotacin a la derecha. La operacin de corrimiento a la izquierda mueve cada bit en
una cadena una posicin a la izquierda, esto es, el bit de la posicin cero se mueve
a la posicin uno, el valor previo en la posicin uno se mueve a la posicin dos, etc.
sto nos hace reflexionar en un par de asuntos, Qu valor se asigna a la posicin
cero? y, A donde se v el valor del bit siete? Las respuestas son las siguientes, en
el bit de bajo orden se coloca el valor de cero en tanto que el valor previo de la
posicin siete se convierte en el arrastre de la operacin.
Observe que al correr el valor a la izquierda es lo mismo que multiplicarlo por su
base, por ejemplo, correr un nmero decimal una posicin a la izquierda
(agregando un cero a la derecha del nmero) efectivamente lo estamos
multiplicando por diez (que es el valor de la base). Como la base de un nmero
binario es dos, correr a la izquierda equivale a multiplicar el valor por dos, si Usted
corre a la izquierda un valor binario dos veces, Usted lo est multiplicando dos
veces por dos, o sea por cuatro, en general, si Usted corre a la izquierda un valor n
veces, Usted est multiplicando ese valor por 2n.
La operacin de corrimiento a la derecha es similar al corrimiento por la izquierda,
excepto que los datos se mueven en la direccin contraria. Como el corrimiento a la
izquierda equivale a la multiplicacin por el valor de la base, el corrimiento a la
derecha equivale a la divisin por el valor de la base. Si se ejecutan n corrimientos
a la derecha, Usted est dividiendo ese nmero por 2n. En el caso del corrimiento a
la derecha existe una excepcin, la operacin de corrimiento a la derecha equivale a
una divisin sin signo por el valor de la base, esto ocurre porque durante la
operacin de corrimiento colocamos el valor de cero en el bit de alto orden, si ste
bit contiene un uno (estamos hablando de un nmero negativo) equivale a cambiar
de signo el nmero en cuestin. Para resolver sta cuestin definimos un nuevo tipo
de operacin conocido como corrimiento aritmetico a la derecha, ste trabaja de
forma similar al corrimiento lgico a la derecha con una excepcin, el bit de alto
orden se deja intacto.
El otro par de operaciones son la rotacin a la izquierda y la rotacin a la derecha,
stas operaciones son muy similares a las de corrimiento con una diferencia, el bit
de arrastre es colocado en el extremo opuesto de la cadena de bits.

Campos de bits y paquetes de datos

Aunque los procesadores 80x86 trabajan con mayor eficacia con tipos de datos
como el byte, la palabra, la palabra doble, ocasionalmente Usted necesitar
trabajar con un tipo de dato que utilize cierto nmero de bits diferente de ocho, 16
32. por ejemplo, considere una fecha de la forma "4/2/88". ste toma tres
valores numricos para representar la fecha, para el mes, el da y el ao. Los
meses, por supuesto, toman valores entre 1 y 12, sto requiere al menos cuatro
bits. Los das tienen un rango de entre 1 y 31 as que se requieren cinco bits para
representar el valor del da, en tanto que para el ao, asumiendo que trabajamos
con slo dos dgitos en el rango de 0 a 99, entonces requerimos siete bits, en total
se necesitan 16 bits para representar la fecha, o sea, dos bytes. En otras palabras,
empaquetamos la representacion de la fecha en dos bytes en lugar de utilizar tres
bytes que son los que hubieran sido necesarios para manejar los datos
separadamente, sto ahorra un byte de memoria para cada fecha almacenada. Los
bits se pueden ordenar de la siguiente manera:

MMMM representan los cuatro bits para el valor del mes, DDDDD son cinco bits para
representar el valor del da, y AAAAAAA son los siete bits para representar el valor
del ao. Cada coleccin de bits representando un elemento de la fecha se llama
campo de bits. Aunque los valores empaquetados son eficientes en materia de
ahorro de memoria, stos son a la vez ineficientes computacionalmente hablando.
la razn de sto es porque se requieren instrucciones adicionales para leer los
diferentes elementos del paquete de datos, stas instrucciones adicionales se
traducen en mayor tiempo de ejecucin del programa, se debe ser cuidadoso al
utilizar paquetes de datos.

El cdigo ASCII
El juego de caracteres ASCII (excluyendo los caracteres extendidos definidos por
IBM) est dividido en cuatro grupos de 32 caracteres. Los primeros 32 caracteres,
del cdigo ASCII 0 hasta el ASCII 1Fh16 (3110) forman un juego especial de
caracteres no imprimibles llamados caracteres de control ya que ejecutan varias
operaciones de despliegue/impresin en lugar de mostrar smbolos, ejemplo de
stos son el retorno de carro que posiciona el llamado cursor al lado izquierdo de la
actual lnea de caracteres, avance de lnea que mueve hacia abajo el llamado cursor
una lnea en el dispositivo de salida. Desafortunadamente, los diferentes caracteres
de control ejecutan diferentes operaciones dependiendo del dispositivo de salida ya
que existe poca estandarizacin al respecto.
El segundo grupo de caracteres comprende varios smbolos de puntuacin,
caracteres especiales y dgitos numricos, los caracteres mas notables de ste
grupo son el caracter de espacio (cdigo ASCII 20h) y los dgitos numricos
(cdigos ASCII 30h al 39h). Observe que los digitos numricos difieren de sus
respectivos valores slo en el nibble de alto orden, restando 30h de un cdigo
numrico ASCII dado se obtiene el equivalente numrico.
El tercer grupo de caracteres ASCII est reservado a las letras maysculas. Los
cdigos ASCII para los caracteres "A" a la "Z" estn en el rango comprendido entre
41h y 5Ah (65 al 90 decimal). Como stos caracteres estn definidos de acuerdo al

alfabeto utilizado en el idioma ingls solo hay 26 diferentes caracteres alfabeticos


utilizando los seis cdigos restantes para varios smbolos especiales.
El cuarto y ltimo grupo de caracteres ASCII est reservado a las letras minsculas,
cinco smbolos especiales adicionales y otro caracter de control (borrar). Los
caracteres ASCII para las letras minsculas utilizan los cdigos 61h al 7Ah. Si Usted
convierte a binario los cdigos correspondientes a las letras maysculas y
minsculas observar que los smbolos para las maysculas difieren de sus
respectivas minsculas en una posicin de bit. Las letras maysculas siempre
contienen un cero en la posicin cinco en tanto que las letras minsculas contienen
un uno en la misma posicin, es posible utilizar ste hecho para convertir de
maysculas a minsculas y viceversa.
De acuerdo con lo ya expuesto podemos afirmar que los bits de posicin seis y
cinco determinan qu caracteres ASCII estamos utilizando de acuerdo a la siguiente
tabla:
Bit 6 Bit 5

Grupo

Caracteres de control

Dgitos y puntuacin

Letras maysculas y caracteres


especiales

Letras minsculas y caracteres


especiales

En el cdigo estndar ASCII el bit de posicin siete siempre es cero, esto siginifica
que el juego de caracteres ASCII consume la mitad de la capacidad de
representacin de un byte. IBM utiliza los restantes 128 cdigos de caracter para
representar diferentes smbolos especiales incluyendo caracteres internacionales
(con respecto a EEUU) como letras acentuadas, smbolos matemticos y caracteres
para dibujar lneas. Observe que stos caracteres adicionales no estn
estandarizados como una extensin del cdigo ASCII, sin embargo la firma IBM
tiene suficiente peso de tal manera que prcticamente todas las computadoras
personales basadas en procesadores 80x86 soportan el juego de caracteres
extendidos IBM/ASCII. Esto tambin es vlido para las impresoras.

LENGUAJE ENSAMBLADOR
IMPORTANCIA
Es importante como se puede ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de
Mquina, y viceversa; simplemente, es una abstraccin que facilita su uso para los seres humanos. Por otro
lado, la computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a
Lenguaje de Mquina. Pero, al ser tan directa la traduccin, pronto aparecieron los programas
Ensambladores, que son traductores que convierten el cdigo fuente (en Lenguaje Ensamblador) a cdigo
objeto (es decir, a Lenguaje de Mquina. Surge como una necesidad de facilitar al programador la tarea de
trabajar con lenguaje mquina sin perder el control directo con el hardware.

Ventajas y desventajas del Lenguaje Ensamblador


Una vez que hemos visto la evolucin de los lenguajes, cabe preguntarse: En estos tiempos "modernos", para
qu quiero el Lenguaje Ensamblador?
El proceso de evolucin trajo consigo algunas desventajas, que ahora veremos como las ventajas de usar el
Lenguaje Ensamblador, respecto a un lenguaje de alto nivel:
1.
2.
3.

Velocidad
Eficiencia de tamao
Flexibilidad

Por otro lado, al ser un lenguaje ms primitivo, el Ensamblador tiene ciertas desventajas respecto a los
lenguajes de alto nivel:
1.
2.
3.
4.

Tiempo de programacin
Programas fuente grandes
Peligro de afectar recursos inesperadamente
Falta de portabilidad

Velocidad
El proceso de traduccin que realizan los intrpretes, implica un proceso de cmputo adicional al que el
programador quiere realizar. Por ello, nos encontraremos con que un intrprete es siempre ms lento que
realizar la misma accin en Lenguaje Ensamblador, simplemente porque tiene el costo adicional de estar
traduciendo el programa, cada vez que lo ejecutamos.
De ah nacieron los compiladores, que son mucho ms rpidos que los intrpretes, pues hacen la traduccin
una vez y dejan el cdigo objeto, que ya es Lenguaje de Mquina, y se puede ejecutar muy rpidamente.
Aunque el proceso de traduccin es ms complejo y costoso que el de ensamblar un programa, normalmente
podemos despreciarlo, contra las ventajas de codificar el programa ms rpidamente.
Sin embargo, la mayor parte de las veces, el cdigo generado por un compilador es menos eficiente que el
cdigo equivalente que un programador escribira. La razn es que el compilador no tiene tanta inteligencia, y
requiere ser capaz de crear cdigo genrico, que sirva tanto para un programa como para otro; en cambio, un
programador humano puede aprovechar las caractersticas especficas del problema, reduciendo la generalidad
pero al mismo tiempo, no desperdicia ninguna instruccin, no hace ningn proceso que no sea necesario.

Para darnos una idea, en una PC, y suponiendo que todos son buenos programadores, un programa para
ordenar una lista tardar cerca de 20 veces ms en Visual Basic (un intrprete), y 2 veces ms en C (un
compilador), que el equivalente en Ensamblador.
Por ello, cuando es crtica la velocidad del programa, Ensamblador se vuelve un candidato lgico como
lenguaje.
Ahora bien, esto no es un absoluto; un programa bien hecho en C puede ser muchas veces ms rpido que un
programa mal hecho en Ensamblador; sigue siendo sumamente importante la eleccin apropiada de algoritmos
y estructuras de datos. Por ello, se recomienda buscar optimizar primero estos aspectos, en el lenguaje que se
desee, y solamente usar Ensamblador cuando se requiere ms optimizacin y no se puede lograr por estos
medios.

Tamao
Por las mismas razones que vimos en el aspecto de velocidad, los compiladores e intrpretes generan ms
cdigo mquina del necesario; por ello, el programa ejecutable crece. As, cuando es importante reducir el
tamao del ejecutable, mejorando el uso de la memoria y teniendo tambin beneficios en velocidad, puede
convenir usar el lenguaje Ensamblador. Entre los programas que es crtico el uso mnimo de memoria, tenemos
a los virus y manejadores de dispositivos (drivers). Muchos de ellos, por supuesto, estn escritos en lenguaje
Ensamblador.
Flexibilidad
Las razones anteriores son cuestin de grado: podemos hacer las cosas en otro lenguaje, pero queremos
hacerlas ms eficientemente. Pero todos los lenguajes de alto nivel tienen limitantes en el control; al hacer
abstracciones, limitan su propia capacidad. Es decir, existen tareas que la mquina puede hacer, pero que un
lenguaje de alto nivel no permite. Por ejemplo, en Visual Basic no es posible cambiar la resolucin del monitor a
medio programa; es una limitante, impuesta por la abstraccin del GUI Windows. En cambio, en ensamblador es
sumamente sencillo, pues tenemos el acceso directo al hardware del monitor.
Tiempo de programacin
Al ser de bajo nivel, el Lenguaje Ensamblador 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.
Por todo esto, es ms lento el desarrollo de programas comparables en Lenguaje Ensamblador que en un
lenguaje de alto nivel, pues el programador goza de una menor abstraccin.

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

Tenemos la ventaja de que todo lo que se puede hacer en la mquina, se puede hacer con el Lenguaje
Ensamblador (flexibilidad). El problema es que todo error que podamos cometer, o todo riesgo que podamos
tener, podemos tenerlo tambin en este Lenguaje. Dicho de otra forma, tener mucho poder es til pero tambin
es peligroso.
En la vida prctica, afortunadamente no ocurre mucho; sin embargo, al programar en este lenguaje vern que es
mucho ms comn que la mquina se "cuelgue", "bloquee" o "se le vaya el avin"; y que se reinicialize. Por
qu?, 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.
En ciertos casos extremos, puede llegarse a sobrescribir informacin del CMOS de la mquina (no he visto
efectos ms riesgosos); pero, si no la conservamos, esto puede causar que dejemos de "ver" el disco duro, junto
con toda su informacin.
Falta de portabilidad
Como ya se mencion, existe un lenguaje ensamblador para cada mquina; 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. Si bien esto es un problema general a todos los
lenguajes, es mucho ms notorio en ensamblador: yo puedo reutilizar un 90% o ms del cdigo que desarrollo
en "C", en una PC, al llevarlo a una RS/6000 con UNIX, y lo mismo si despus lo llevo a una Macintosh, siempre
y cuando est bien hecho y siga los estndares de "C", y los principios de la programacin estructurada. En
cambio, si escribimos el programa en Ensamblador de la PC, por bien que lo desarrollemos y muchos
estndares que sigamos, tendremos prcticamente que reescribir el 100 % del cdigo al llevarlo a UNIX, y otra
vez lo mismo al llevarlo a Mac.

Intrpretes y complicadores.
Los compiladores, los intrpretes y los ensambladores se encargan de traducir lo que haya
escrito en lenguaje de alto nivel (cdigo fuente) y lo convierten a cdigo objeto (casi
ejecutable).

Complicador
Es un programa que traduce un programa escrito en un lenguaje de alto nivel, por ejemplo
C++, en un programa en lenguaje de mquina que la computadora es capaz de entender y
ejecutar directamente. Un compilador es un tipo especial de programa, en cuanto a que
sus entradas o datos son algn programa y su salida es otro programa. Para evitar

confusiones, solemos llamar programa fuente o cdigo fuente al programa de entrada, y


programa objeto o cdigo objeto a la versin traducida que el compilador produce. Cdigo
se usa frecuentemente para referirse a un programa o a una parte de l, sobre todo
cuando se habla de programas objeto.
Ejemplo:
Pascal
Cobol
Fortran
Ada
Cdigo Fuente
Cdigo Objeto
Cdigo Ensamblador
Modula 2
C , C++
El compilador, informa al usuario de la presencia de errores en el programa fuente,
pasndose a crear el programa objeto cuando est libre de errores. El cdigo objeto puede
ser ejecutado posteriormente. Una vez traducido un programa, su ejecucin es
independiente de su compilacin. involucra dos pasos en su operacin:
1. Convertir cdigo fuente a objeto
2. Ejecutar el cdigo objeto
Ventaja:
Al tener el cdigo objeto, el programa se ejecuta ms rpido
Fases de compilacin

Anlisis: Dependiente del lenguaje. Independiente de la mquina


Sintaxis: Independiente del lenguaje. Dependiente de la mquina.
Intrprete: Es el que permite que un programa fuente escrito en un lenguaje vaya
traducindose y ejecutndose directamente sentencia a sentencia por la computadora.
Convierte uno por uno los enunciados del cdigo fuente a cdigo objeto antes de ser
ejecutados.Convierte y ejecuta el programa en lnea al mismo tiempo. Ejemplo: Basic
estndar.
Ventaja:
Las ventajas de los intrpretes son:
Resulta ms fcil localizar y corregir errores (depuracin de programas)
- son ms pedaggicos para aprender a programar.
El programa es ms fcil de desarrollar.
Traducen programas de alto nivel. No se genera en la mayora de los ficheros.

Programa
Fuente
Cdigo
Intermedio
Programa
Objeto
Para cada una de las lneas se ejecuta el siguiente proceso:
1. Anlisis de la instruccin de esa lnea
2. Traduccin de esa lnea (si ya est correcta) a cdigo objeto
3. Ejecucin de esa lnea
Con el intrprete, cada vez que necesitamos ejecutar el programa tenemos que volver a
analizarlo porque no hay cdigo objeto.
Con el compilador, aunque ms lenta la traduccin, slo se realiza una vez.

TRADUCTOR Y SU ESTRUCTURA
QU ES UNA TRADUCTOR?

o
o

Un traductor es un mediador entre dos entidades: emisoras y receptoras, los


mediadores enmascaran la complejidad y heterogeneidad de los lenguajes.
Un traductor convierte un lenguaje de entrada (cdigo fuente) a una de salida (cdigo
objeto).

ENSAMBLADORES

Ensamblador 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.
Ejemplos: MASM

FUNCIN DE UN ENSAMBLADOR:
La tarea fundamental de un ensamblador es traducir un programa en lenguaje de
ensamblador al cdigo correspondiente en lenguaje de mquina.

MOTIVOS PARA USAR ENSAMBLADOR

Mayor control de la computadora.


Independencia de lenguaje.
La mayora de las computadoras pueden ensamblar.
Los programas hechos en lenguaje ensamblador son generalmente ms
rpidos y consumen menos recursos del sistema.

MOTIVOS PARA NO UTILIZAR

o
o
o
o
o

Demasiado complejo.
Comprensin ms profunda de la computadora.
Errores ms frecuentes en el programa.
Mayor tiempo de codificacin.
Difcilmente portable, es decir, un cdigo escrito para un microprocesador en
particular necesita ser modificado muchas veces en su totalidad para poder ser usado en otro
microprocesador.

TIPOS DE ENSAMBLADORES

ENSAMBLADORES CRUZADOS: Se denominan as a los ensambladores que se


utilizan en una computadora que posee el procesador diferente al que tendrn las computadoras
donde se va a ejecutar el programa objeto producido.
ENSAMBLADORES RESIDENTES: Son aquellas que permanecen en la memoria
principal de la computadora y cargar para su ejecucin al programa objeto producido.

MICRO ENSAMBLADORES: Al programa que indica al intrprete de instrucciones de


la CPU como debe actuar se le denomina microprograma. El programa que ayuda a realizar este
microprograma se llama micro ensamblador.
MACRO ENSAMBLADORES: Son ensambladores que permiten el uso de
macroinstrucciones.

ENSAMBLADORES DE UNA FASE: leen una lnea y la traducen directamente para


producir una instruccin de lenguaje maquina o la ejecuta si se trata de una pseudosinstruccin. Se
construye la tabla de smbolos a medida que aparecen las definiciones de variables, etiquetas, etc.
ENSAMBLADORES DE DOS FASES: Realiza la traduccin en dos etapas: 1 fase
leen el programa fuente y construyen la tabla de smbolos, 2 fase vuelve a leer el programa fuente
y pueden ir traduciendo totalmente pues reconocen la totalidad de los smbolos.

COMPILADORES

o
o

Un compilador es querer traducir un programa de un lenguaje de alto nivel, a otro


lenguaje de nivel inferior (tpicamente lenguaje mquina).
Los compiladores son programas o herramientas encargadas de compilar. Un
compilador toma un texto (cdigo fuente) escrito en un lenguaje de alto nivel y lo traduce a un
lenguaje comprensible por las computadoras (cdigo objeto).

FASES DEL COMPILADOR


CLASIFICACIN DE COMPILADORES

o
o

DE UNA PASADA: Examina el cdigo fuente una vez, generando el cdigo o


programa objeto.
PASADAS MLTIPLES: Requiere pasos intermedios para producir cdigo en otro
lenguaje y una pasada final para producir y optimizar el cdigo producido durante pasos anteriores.

2.

o
o
o

COMPILADORES INCREMENTALES: Generan un cdigo objeto, instruccin por


instruccin cuando el usuario teclea cada orden individual.
COMPILADOR CRUZADO: Se genera cdigo en lenguaje objeto para una maquina
diferente a la que se esta utilizando para compilar.
COMPILADOR CON MONTADOR: Compila distintos mdulos de forma
independiente y despus es capaz de aplazarlos.

3.

o
o

AUTO COMPILADORES: Compilador que esta escrito en el mismo lenguaje que va a


compilar.
META COMPILADOR: Es programa que recibe como entrada las especificaciones
del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para
ese lenguaje.
DESCOMPILADOR: Es un programa que acepta como entrada cdigo maquina y la
traduce a un lenguaje de alto nivel realizando el proceso inverso a la compilacin.

INTERPRETES

Un intrprete es un programa capaz de analizar y ejecutar otros programas, escritos


en un lenguaje de alto nivel. Los intrpretes suelen contraponerse a los compiladores, ya que
mientras que los segundos se encargan de traducir un programa desde su descripcin en un
lenguaje de programacin al cdigo mquina del sistema destino, los primeros slo realizan la
traduccin a medida que sea necesario y normalmente, no guardan el resultado de dicha
traduccin.

JavaScript, BASIC, LISP, Smalltalk y Python son ejemplos de lenguajes que son
normalmente interpretados en vez de compilados.

EL INTRPRETE TIENE ESTAS CARACTERSTICAS

o
o
o

Traduce y ejecuta una lnea del programa a la vez.


Si hay error, detiene ejecucin del programa
Programas ms lentos pero ms portables y flexibles

EL PROCESO DE LIGA, LAS RUTINAS DE RUN-TIME Y LOS SERVICIOS


DEL SISTEMA OPERATIVO.
Para crear un programa ejecutable a partir de un cdigo objeto se require que se resulevan
las llamadas a otros programas y a los servicios del sistema operativo, y agregar las rutinas o
informacin de run-time para que el programa pueda ser cargado a memoria y ejecutado. Este
proceso es lo que se conoce como Link o proceso de liga, y se realiza a travs de un ligador o
Linker que toma de entrada el cdigo objeto y produce de salida el cdigo ejecutable.
Las rutinas de run-time son necesarias, puesto que el sistema operativo requiere tener control
sobre el programa en cualquier momento, adems de que la asignacin de recursos y su
acceso deben hacerse slamente a travs del sistema operativo. Para los computadores
personales, esto no es tan complejo como para otros computadores y sistemas operativos,
pero es requerido

TASM/MASM.
El Turbo Assembler (TASM), un paquete ensamblador principalmente destinado a la
plataforma del IBM PC y sus compatibles. Fue la oferta de Borland en el mercado de
herramientas de programacin en lenguaje ensamblador para la familia de los
microprocesadores x86. Como se pudiera esperar, trabajaban bien con los compiladores
de lenguaje de alto nivel de Borland para los PC, como Turbo C y Turbo Pascal. Junto
con el resto de suite de lenguajes de programacin Turbo, Turbo Assembler ya no es
mantenido.
El paquete Turbo Assembler vino junto con el enlazador Turbo Linker, y era
interoperable con el depurador Turbo Debugger. Para la compatibilidad con el
ensamblador Microsoft Macro Assembler (MASM) de Microsoft, TASM tambin poda
ensamblar los archivos de cdigo fuente del MASM por medio de su modo MASM. Al
igual que ste, es un ensamblador de alto nivel

Turbo Assembler tambin se refiere a un ensamblador comn, basado en el


microprocesador 6502 para el Commodore 64, creado por la compaa alemana
Omikron en 1985. Este producto no se relaciona con el ensamblador de Borland.
Es el programa que convierte nuestro listado fuente en cdigo objeto, es decir, lenguaje
mquina en el que slo faltan las referencias a rutinas externas. Permite la obtencin de
listados de cdigo y de referencias cruzadas (smbolos, etiquetas, variables). En general,
bastar con hacer TASM nombre_programa (se supone la extensin .ASM por defecto).
El fichero final tiene extensin OBJ. En general, la sintaxis del TASM y MASM es ms
o menos equivalente: en el primero se obtiene ayuda con /H y en el segundo con /HELP.
Con TASM, cuando se va a obtener la versin definitiva del programa, o si ste es corto
-o el ordenador rpido- merece la pena utilizar el parmetro /m3, con objeto de que de
dos/tres pasadas y optimize ms el cdigo. Por su lado, MASM presenta estadsticas
adicionales si se indica /v y se puede cambiar con /Btamao el n de Kb de memoria que
destina al fichero fuente, entre 1 y 63. La sintaxis es (tanto para TASM como MASM):
TASM fichero_fuente, fichero_listado, fichero_referencias_cruzadas
Se puede omitir el fichero de listado y el de referencias cruzadas. Cuando se emplea
MASM 6.X, para ensamblar los listados de este libro hay que indicar la opcin /Zm
para mantener la compatibilidad con las versiones anteriores del ensamblador, siendo
adems obligatorio indicar la extensin; como se genera directamente el fichero EXE
hay que indicar /c si se desea evitar esto (si no se quiere que linke). La sintaxis quedara:
ML /Zm fihero_fuente.asm
A continuacin se listan los parmetros comunes a TASM 2.0 (y posterior) y MASM
4.0/5.0 (NO la 6.X):
/a y /s Seleccionan un orden alfabtico o secuencial de los segmentos.
Genera un listado de referencias cruzadas en un fichero de extensin CRF listo
para ser procesado por CREF (MASM) aadiendo adems nmeros de lnea al
listado, o bien incluye el listado de referencias cruzadas directamente dentro del
/c
listado del programa (caso de TASM). Las referencias cruzadas son un listado de
todos los smbolos del programa, indicando los nmeros de lnea del mismo en
que son definidos y referenciados.
De la manera /Dsmbolo[=valor] permite crear el smbolo indicado, cuya
presencia puede comprobarse en el programa con una directiva IF (es til para
definir externamente un smbolo que indique que el programa est en fase de
/D
depuracin, de cara a ensamblar cierto cdigo adicional). Aunque /d (en
minsculas) es un obsoleto parmetro de MASM para obtener un listado de la
primera pasada del ensamblador, MASM 4.0 es capaz de darse cuenta de que se
pretende definir un smbolo con /d a menos que se indique solo /d.
Emula las instrucciones de punto flotante del 80x87, apoyndose en una librera al
/e
efecto.
Permite indicar el directorio donde el ensamblador debe de buscar los ficheros
/Iruta
indicados en el programa fuente con INCLUDE.
/l[a] Con /l se genera un listado de ensamblaje y con /la un listado expandido.
/m
Con /m se indica el nivel de preservacin del sentido de maysculas y minsculas

/n
/p
/t
/w
/X
/z
/Zi
/Zd

en los smbolos: /ml hace que se consideres diferentes maysculas de minsculas


en todos los smbolos, /mx slo con los smbolos globales y /mu hace que se
mayusculicen todos los smbolos globales. Al ensamblar mdulos para usar desde
lenguaje C hay que indicar por lo menos /mx. En MASM 6.X se emplea /Cx en
lugar de /mx, /Cp en lugar de /ml y /Cu en vez de /mu.
Suprime las tablas de smbolos en el listado.
Verifica que el cdigo generado para el modo protegido es correcto (al emplear la
directiva para generar instrucciones de modo protegido).
Suprime los mensajes si el ensamblaje es correcto.
Indica el nivel de advertencias: /w0 ninguna, /w1 slo las serias y /w2 slo
consejos.
Lista las condiciones falsas (ensamblaje condicional).
Visualiza la lnea del error y no slo el nmero de la misma.
Genera informacin simblica para los depuradores de cdigo.
Incluye slo la informacin del nmero de lnea.

6.4.2. - TLINK/LINK.
El montador o linkador permite combinar varios mdulos objeto, realizando las
conexiones entre ellos y, finalmente, los convierte en mdulo ejecutable de tipo EXE
(empleando el ML de MASM 6.X se obtiene directamente el fichero EXE ya que invoca
automticamente al linkador). El linkador permite el uso de libreras de funciones y
rutinas. TLINK, a diferencia de LINK, permite generar un fichero de tipo COM
directamente de un OBJ si se indica el parmetro /t, lo que agiliza an ms el proceso.
Puede obtenerse ayuda ejecutndolo sin parmetros. Los parmetros de TLINK son
sensibles a maysculas y minsculas, por lo que /T no es lo mismo que /t. Con LINK se
obtiene ayuda indicando /HELP. Aunque los parmetros de uno y otro son bastante
distintos, la sintaxis genrica de ambos es:
TLINK fich_obj(s), fich_exe, fich_map, fich_libreria, fich_def
Los ficheros no necesarios se pueden omitir (o indicar NUL): para linkar el fichero
prog1.obj y el prog2.obj con la librera math.lib generando PROG1.EXE basta con
ejecutar TLINK prog1+prog2,,,math. Alternativamente se puede indicar TLINK
@fichero para que tome los parmetros del fichero de texto FICHERO, en el caso de
que estos sean demasiados y sea incmodo teclearlos cada vez que se linka. Los
ficheros de texto de extensin MAP contienen informacin til para el programador
sobre la distribucin de memoria de los segmentos.

LAS FUNCIONES DEL DOS Y DE LA BIOS.


El cdigo de la BIOS, almacenado en las memorias ROM del ordenador, constituye
la primera capa de software de los ordenadores compatibles. La BIOS accede
directamente al hardware, liberando a los programas de usario de las tareas ms
complejas. Parte del cdigo de la BIOS es actualizado durante el arranque del
ordenador, con los ficheros que incluye el sistema operativo. El sistema operativo o
DOS propiamente dicho se instala despus: el DOS no realiza ningn acceso directo al
hardware, en su lugar se apoya en la BIOS, constituyendo una segunda capa de
software. El DOS pone a disposicin de los programas de usuario unas funciones muy
evolucionadas para acceder a los discos y a los recursos del ordenador. Por encima del
DOS se suele colocar habitualmente al COMMAND.COM, aunque realmente el
COMMAND no constituye capa alguna de software: es un simple programa de utilidad,
como cualquier otro, ejecutado sobre el DOS y que adems no pone ninguna funcin a
disposicin del sistema (al menos, documentada), su nica misin es cargar otros
programas.
FUNCIONES DE LA BIOS
Las funciones de la BIOS se invocan, desde los programas de usuario, ejecutando
una interrupcin software con un cierto valor inicial en los registros. La BIOS emplea
un cierto rango de interrupciones, cada una encargada de una tarea especfica:
INT 10h: Servicios de Vdeo (texto y grficos).
INT 11h: Informe sobre la configuracin del equipo.
INT 12h: Informe sobre el tamao de la memoria convencional.
INT 13h: Servicios de disco (muy elementales: pistas, sectores, etc.).
INT 14h: Comunicaciones en serie.
INT 15h: Funciones casette (PC) y servicios especiales del sistema (AT).
INT 16h: Servicios de teclado.
INT 17h: Servicios de impresora.
INT 18h: Llamar a la ROM del BASIC (slo mquinas IBM).
INT 19h: Reinicializacin del sistema.
INT 1Ah: Servicios horarios.
INT 1Fh: Apunta a la tabla de los caracteres ASCII 128-255 (8x8 puntos).
La mayora de las interrupciones se invocan solicitando una funcin determinada
(que se indica en el registro AH al llamar) y se limitan a devolver un resultado en ciertos
registros, realizando la tarea solicitada. En general, slo resultan modificados los
registros que devuelven algo, aunque BP es corrompido en los servicios de vdeo de las
mquinas ms obsoletas.
FUNCIONES DEL DOS
El DOS emplea varias interrupciones, al igual que la BIOS; sin embargo, cuando se
habla de funciones del DOS, todo el mundo sobreentiende que se trata de llamar a la
INT 21h, la interrupcin ms importante con diferencia.

INT 20h: Terminar programa (tal vez en desuso).


INT 21h: Servicios del DOS.
INT 22h: Control de finalizacin de programas.
INT 23h: Tratamiento de Ctrl-C.
INT 24h: Tratamiento de errores crticos.
INT 25h: Lectura absoluta de disco (sectores lgicos).
INT 26h: Escritura absoluta en disco (sectores lgicos).
INT 27h: Terminar dejando residente el programa (en desuso).
INT 28h: Idle (ejecutada cuando el ordenador est inactivo).
INT 29h: Impresin rpida en pantalla (no tanto).
INT 2Ah: Red local MS NET.
INT 2Bh-2Dh: Uso interno del DOS.
INT 2Eh: Procesos Batch.
INT 2Fh: Interrupcin Multiplex.
INT 30h-31h: Compatibilidad CP/M-80.
INT 32h: Reservada.
Las funciones del DOS se invocan llamando a la INT 21h e indicando en el registro
AH el nmero de funcin a ejecutar. Slo modifican los registros en que devuelven los
resultados, devolviendo normalmente el acarreo activo cuando se produce un error (con
un cdigo de error en el acumulador). Muchas funciones de los lenguajes de
programacin frecuentemente se limitan a llamar al DOS.
Todos los valores mostrados a continuacin son hexadecimales; el de la izquierda es
el nmero de funcin (lo que hay que cargar en AH antes de llamar); algunas funciones
del DOS se dividen a su vez en subfunciones, seleccionables mediante AL (segundo
valor numrico, en los casos en que aparece). Las funciones marcadas con U> fueron
histricamente indocumentadas, aunque Microsoft desclasific casi todas ellas a partir
del MS-DOS 5.0 (en muchas secciones de este libro, escritas con anterioridad, se las
referencia an como indocumentadas). Se indica tambin la versin del DOS a partir de
la que estn disponibles.
En general, se debe intentar emplear siempre las funciones que requieran la menor
versin posible del DOS; sin embargo, no es necesario buscar la compatibilidad con el
DOS 1.0: esta versin no soporta subdirectorios, y el sistema de ficheros se basa en el
horroroso mtodo FCB. Los FCB ya no estn soportados siquiera en la ventana de
compatibilidad DOS de OS/2, siendo recomendable ignorar su existencia y trabajar con
los handles, al estilo del UNIX, que consisten en unos nmeros que identifican a los
ficheros cuando son abiertos. Existen 5 handles predefinidos permanentemente abiertos:
0 (entrada estndar -teclado-), 1 (salida estndar -pantalla-), 2 (salida de error estndar
-tambin pantalla-), 3 (entrada/salida por puerto serie) y 4 (salida por impresora): la
pantalla, el teclado, etc. pueden ser manejados como simples ficheros.

ARQUITECTURA DEL INTEL 8086


Debido al tipo de microprocesador empleado, la memoria de la PC se encuentra dividida en
una serie de blocks denominados segmentos, de 64KB cada uno. La memoria es accesada
especificando el segmento y el desplazamiento dentro del segmento
(segmento:desplazamiento, para mayor detalle ver el apendice C). Para las PCs la memoria
se clasifica en tres tipos:
- Convencional. Es la memoria de tipo bsico y que abarca las direcciones de 0 a 640KB. En
sta es donde se cargan los programas de usuario y el sistema operativo, y es la que est
disponible para equipo XT (8088,8086, 80186 y 80188).
- Extendida. Esta memoria slo est disponible para procesadores 80286 y mayores (equipo
AT, 80386 y 80486). Muchos programas que usan la memoria convencional no pueden usar la
memoria extendida porque las direcciones en memoria extendida estn ms alla de las que el
programa puede reconocer. nicamente las direcciones dentro de los 640KB pueden ser
reconocidas por todos los programas. Para reconocer la memoria extendida se requiere de un
manejador de memoria extendida, como HIMEM.SYS que provee MS-DOS.
- Expandida. Esta es la memoria que se agrega al computador a travs de una tarjeta de
expansin, y que debe ser administrada por un programa especial, como el EMM386.EXE. A
diferencia de la memoria convencional o extendida, la memoria expandida es dividida en
bloques de 16K llamados pginas (pages) . Cuando un programa solicita informacin de
memoria expandida el manejador copia la pgina correspondiente en un rea denominada
page frame para poder ser accesada en la memoria extendida.
Como podremos ver, el 8088, 8086, 80188 y 80186 son capaces de direccionar hasta 1 MB
de memoria. Ya hemos indicado que la memoria convencional slo abarca 640KB, as nos
quedan 384KB libres. Esta parte de la memoria es denominada parte alta, y como no est
disponible para muchos programas generalmente se usa para cargar drivers del sistema
operativo, programas residentes y datos de hardware (ROM y pginas de video).

Sin importar de que microprocesador se trate, los microprocesadores del 8088 al 80486 usan
el modelo de registros del 8086. Los microprocesadores matemticos 80287 al 80487 utilizan
el modelo de registros expandidos del 8087. Para mayor detalle ver los apndices A y B.
Los microprocesadores matemticos estn diseados exclusivamente para efectuar
operaciones aritmticas de una manera ms rpida y precisa bajo el control de otro procesador
razn por la cual se denominan coprocesadores. Estos tambin poseen un juego de
instrucciones de lenguaje de mquina propio.
La diferencia entre los diversos microprocesadores de uso general y los coprocesadores
reside en el nuevo conjunto de instrucciones, registros y sealizadores agregados con cada
nueva liberacin de un procesador superior. Estas adiciones se hicieron con el fin de agregar
un mayor poder de cmputo sin alterar la estructura bsica, para as mantener la
compatibilidad con los desarollos anteriores, tanto de software como de hardware.
La diferencia entre los 8086 y 8088 con los 80186 y 80188 no es muy grande, sta radica en
un grupo de instrucciones que fueron agregadas al 80186 y al 80188. La diferencia entre el
8086 y el 8088, lo mismo que entre el 80186 y el 80188, es el modelo de memoria que usan
ambos procesadores. El 8088 y el 80188 estn diseados como microprocesadores de 8 bits
por lo que el modo de acceso a la memoria es ligeramente distinto pero compatible con el 8086
y el 80186. Esto se ver con ms detalle en un tema posterior.

TURBO ENSAMBLADOR - TASM

UN EJEMPLO CLASICO.
En esta parte se describe lo que es el lenguaje ensamblador, no al ensamblador o al
proceso de ensamblado. Aqu se tratar todo lo concerniente con el lenguaje ensamblador y el
conjunto de directivas del Microsoft Macro Assembler v4.0. Si bien esto puede resultar bastente
extenso y complejo, aqu slo se describirn las instrucciones y directivas bsicas.
Para comenzar veamos un pequeo ejemplo que ilustra el formato del programa fuente.
Este ejemplo est completamente desarrollado en lenguaje ensamblador que usa servicios o
funciones de MS-DOS (system calls) para imprimir el mensaje Hola mundo!! en pantalla.
; HOLA.ASM
; Programa clasico de ejemplo. Despliega una leyenda en pantalla.
STACK

SEGMENT STACK
DW

STACK
DATA

64 DUP (?)

; Define espacio en la pila

ENDS
SEGMENT

SALUDO
DATA

; Segmento de pila

DB

; Segmento de datos

"Hola mundo!!",13,10,"$" ; Cadena

ENDS

CODE

SEGMENT

; Segmento de Codigo

ASSUME CS:CODE, DS:DATA, SS:STACK


INICIO:

; Punto de entrada al programa

MOV AX,DATA

; Pone direccion en AX

MOV DS,AX

; Pone la direccion en los registros

MOV DX,OFFSET SALUDO

; Obtiene direccion del mensaje

MOV AH,09H

; Funcion: Visualizar cadena

INT

; Servicio: Funciones alto nivel DOS

21H

MOV AH,4CH
INT

21H

; Funcion: Terminar

CODE

ENDS

END INICIO

; Marca fin y define INICIO

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 del
dolar 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 declaracion 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.

Cada programa en lenguaje ensamblador es creado a partir de un archivo fuente de cdigo


ensamblador. Estos son archivos de texto que contienen todas las declaraciones de datos e
instrucciones que componen al programa y que se agrupan en reas o secciones, cada una
con un propsito especial. Las sentencias en ensamblador tienen la siguiente sintaxis:
[nombre] mnemnico [operandos] [;comentarios]

En cuanto a la estructura, todos los archivos fuente tienen la misma forma: cero o ms
segmentos de programa seguidos por una directiva END. No hay una regla sobre la estructura
u orden que deben seguir las diversas secciones o reas en la creacin del cdigo fuente de un
programa en ensamblador. Sin embargo la mayora de los programas tiene un segmento de
datos, un segmento de cdigo y un segmento de stack, los cuales pueden ser puestos en
cualquier lugar.

You might also like