Sunteți pe pagina 1din 16

Lenguaje Ensamblador

Ing. Romn Fernando Ruch Romn / Figuras


CLASE 01
UNIDAD I

Tema: Introduccin a la Asignatura / Conceptos Bsicos
Sumario:
Que es el lenguaje ensamblador,
Por que aprender ensamblador,
Que es el lenguaje maquina,
Sistemas Numricos.

Objetivos:
Relacionar al Estudiantes con Conceptos bsicos que le den una visin sobre la razn de la asignatura,
Introducir al Estudiante en Sistemas numricos ampliamente utilizados por los Sistemas de Computo.
Bibliografa:
It Essentials
Reparacin y Ensamblado de Computadoras
Conferencias (Presentaciones de Alumnos)














Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras
QUE ES EL LENGUAJE ENSAMBLADOR, ENSAMBLADOR Y LENGUAJE MAQUINA

El Lenguaje ensamblador (assembly), es como tal el lenguaje fuente, el cual se escribe en un nivel ms alto
de codificacin utilizando instrucciones simblicas en lugar de instrucciones de mquina que son mucho ms
engorrosas para escribir y recordar; por ejemplo las instrucciones Mov, Add, Nop entre otras, son mucho ms
familiares al ser humano que B8, 05, 8B, etc., escritas con el uso del sistema numrico hexadecimal, por otra
parte el lenguaje objeto como se muestra en la figura, es el lenguaje mquina y el traductor llamado
ensamblador (assembler) hace la funcin de llevar de lenguaje ensamblador a lenguaje mquina como tambin
se muestra en la figura I-1







Figura I-1

En otras palabras, un programa escrito en lenguaje ensamblador consiste en un conjunto de enunciados. Los
dos tipos de enunciados son:

1. Instrucciones, tales como Mov, Add, Sub, Cmp, Lea, etc., que el ensamblador traduce a cdigo
objeto,
2. Directivas, que indican al ensamblador que realice una accin especfica, como definir un elemento de
dato.

Tambin es importante saber que independientemente del lenguaje que se utilice de todos modos es un
lenguaje simblico que tiene que ser traducido a una forma que la computadora pueda ejecutar. Un lenguaje
de alto nivel utiliza un compilador para traducir el cdigo fuente a lenguaje de maquina (tcnicamente cdigo
objeto). Un lenguaje de bajo nivel utiliza un ensamblador para realizar la traduccin. Un programa enlazador
para ambos niveles, alto y bajo completa el proceso al convertir el cdigo objeto en lenguaje ejecutable de
mquina.

POR QUE APRENDER ENSAMBLADOR,

Primero identificaremos dos clases de lenguaje de programacin: de alto nivel y de bajo nivel. Los
programadores que escriben en un lenguaje de alto nivel, como C, Pascal, codifican comandos poderosos cada
uno de los cuales puede generar muchas instrucciones en lenguaje de mquina. Por otro lado los
programadores que rescriben en lenguaje ensamblador de bajo nivel codifican instrucciones simblicas, cada
una de las cuales genera una instruccin en lenguaje maquina. A pesar del hecho de codificar en lenguaje de
alto nivel es ms productivo, algunas ventajas de codificar en lenguaje ensamblador son:

Proporciona ms control sobre el manejo particular de los requerimientos del hardware,
Genera mdulos ejecutables ms pequeos y ms compactos,
Con mayor probabilidad tiene una ejecucin ms rpida.

Una prctica comn es combinar los beneficios de ambos niveles de programacin: o sea codificar el grueso
de un proyecto en un lenguaje de alto nivel y los mdulos crticos (aquellos que provocan notables retardos)
en lenguaje ensamblador.

Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras

QUE ES EL LENGUAJE MAQUINA,

Es un sistema de cdigos ejecutados en secuencias interpretable por un circuito microprogramable, como el
microprocesador de una computadora; es decir, trabajan con el cdigo binario (0 y 1). Dicho lenguaje, es
especfico para cada arquitectura de computadora

SISTEMAS NUMRICOS.

IXTRODUCCION (SISTEMAS NUMRICOS CONVERSIONES)

El sistema de numeracin decimal es familiar a todo el mundo. Este sistema utiliza los siguientes smbolos
bien populares: 0. 1. 3. 3, 4, 5, 6, 7, 8 9. El sistema decimal tambin tiene una caracterstica muy importante y
consiste en el valor por posicin. Por ejemplo, considrese el nmero decimal 238. El 8 est en la posicin o
lugar de las unidades. El 3 est en la posicin de las decenas y. por tanto, las tres decenas significan 30
unidades. El 2 est en la posicin de las centenas y significa dos centenas, 200 unidades. Sumando 200 + 30
+ 8 se obtiene el nmero decimal total de 238. El sistema de numeracin decimal tambin se llama sistema
de base 10. Sc denomina de base 10 porque tiene diez smbolos diferentes. Tambin se dice que el sistema de
base 10 tiene una raz 10. Raz y base son trminos que significan exactamente lo mismo.

Expresin polinomica:

Ejemplo: 2x
2
+ 3x
1
+ 8x
0
= 2X10
2
+ 3X10
1
+ 8X10
0
= (2) (100) + (3) (10) + (8) (1) = 238

Los nmeros binarios (base 2) se utilizan mucho en electrnica digital y en computadoras. Los nmeros del
sistema hexadecimal (base 16) y octal (base 8) son utilizados para representar grupos de dgitos binarios. Los
nmeros binarios y hexadecimales tienen un considerable uso en las modernas microcomputadoras. Todos los
sistemas de numeracin mencionados (decimal, binario. octal y hexadecimal) pueden utilizarse para contar.
Tambin tienen todas las caractersticas de valor por posicin.

NMEROS BINARIOS***
El sistema de numeracin binario utiliza solamente dos smbolos (0, 1). Es un sistema que tiene una raz 2 y
comnmente se denomina sistema de numeracin en base 2. Cada digito binario se denomina bit

Contar en binario se ilustra en la Figura - A. El nmero binario se muestra a la derecha con su equivalente
decimal. Observar que el bit menos significativo (LSB - Less Significant Bit) es la posicin del 1. En otras
palabras, si aparece un 1 en la columna derecha, se suma un 1 a la cuenta binaria, La segunda posicin a
partir de la derecha es el lugar del 2. Un 1 en esta columna (como en la fila de las decenas en los decimales)
significa que a la cuenta se suma un 3. Los otros tres valores de las posiciones tambin se muestran en la
Figura -B (posiciones del 4, 8 y16). Observar que a cada posicin se le asigna una potencia de 2. La posicin
del 1 realmente es 2
0
, la del 2 es 2
1
, la del 4 es 2
2
, la del 8 es 2
3
,

la del 16 es 2
4
. Es costumbre en electrnica
digital memorizar, al menos, la secuencia de cuenta binaria desde el valor 0000 hasta 111l (que se pronuncia,
uno. uno. uno, uno) o decimal 15.

Considerar el nmero mostrado en la Figura - C1. Esta figura muestra un ejemplo sobre como convertir el
binario compuesto por 10011 (uno. cero. cero, uno. uno) a su decimal equivalente. Observar que. Para cada
bit 1 del nmero binario, se escribe debajo el decimal equivalente de esa posicin. Los nmeros decimales se
suman despus a partir de los valores (16 + 2 + 1 = 19) para obtener el decimal equivalente. El binario 10011
es igual al decimal 19. Considerar el nmero binario 101110 de la Figura - C2 Utilizando el mismo
ax
n
+ bx
n-1
+ + cx
2
+dx
1
+ ex
0


Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras
procedimiento, cada bit 1 del nmero binario genera un decimal equivalente segn la posicin que ocupe. El
bit ms significativo (MSB) del nmero binario es 32. Sumar 8 ms 4 mis 3 a 32 da un total de 46. El nmero
binario 101110, entonces, es igual al decimal 46. La Figura - C3 tambin identifica el punto binario (similar
al punto decimal en los nmeros decimales). Es costumbre omitir el punto binario cuando se trabaja con
nmeros binarios enteros. Cul es el valor del nmero 111? Podra ser ciento once en decimal o uno, uno,
uno en binario. Algunos libros utilizan el sistema mostrado en la Figura - C4 para designar la base o raz de un
nmero. En este caso 10011 es un nmero en base 2 como muestra el pequeo subndice 2 detrs del nmero.
El nmero 19 es un nmero en base 10 como muestra el subndice 10 detrs del nmero. Figura - C5 es un
resumen de las conversiones binario-decimal de la Figura - C6.

Convertir nmeros binarios fraccionarios en decimal: La Figura - D ilustra cmo se convierte el nmero
binario ll10.101 a su decimal equivalente. Los valores asignados a cada posicin aparecen en la parte superior.
Observar el valor de cada posicin a la derecha del punto binario, El procedimiento para realizar la
conversin es el mismo que con los nmeros enteros. El valor de la posicin de cada bit 1 del nmero binario
se suma para formar el nmero decimal. En este problema 8 + 4 + 2 + 0.5 + 0.125 = 14.635 en decimal.

*****Convertir el nmero 87 a binario: La Figura I-E muestra un mtodo adecuado para realizar esta
conversin. El nmero decimal 87 se divide primero por 2, dando 43 con un resto de 1. El resto es importante
y se anota a la derecha. Se convierte en el LSB (bit menos significativo) del nmero binario. El cociente (43)
entonces es transferido, como muestra la flecha, y se convierte en dividendo. Los cocientes son divididos,
repetidamente, por 2 hasta que el cociente es 0 con un resto de 1, como en la ltima lnea de la Figura En la
parte inferior de la figura aparece el decimal 87 igual al binario 10101ll.

Convertir el nmero decimal 0.375 a binario. La Figura - F ilustra un mtodo para realizar esta tarea.
Observar que el nmero decimal (0.375) se multiplica por 2. Esto da un producto de 0.75. El 0 del lugar
entero (posicin de las unidades) se convierte en el bit ms prximo al punto binario. El 0.75 es entonces
multiplicado por 2, dando 1.50. El arrastre de 1 a la parte entera (posicin de las unidades) es el siguiente bit
del nmero binario. El 0.50 se multiplica entonces por 2, dando un producto de 1.00. El arrastre de 1 a 1 la
parte entera es el 1 final del nmero binario. Cuando el producto es 1.00 finaliza el proceso de conversin.
La Figura - F muestra el decimal 0.375 convertido en su equivalente binario 0.011
2


La Figura - F, muestra el nmero decimal 0.84375 convertido en binario. Observar de nuevo que 0.84375 se
multiplica por 2. El entero de cada producto se coloca debajo, formando el nmero binario. Cuando el
producto es 1.00, finaliza la conversin. Este problema muestra el decimal 0.84375 convertido en el binario
0.1101 1. Considerar el nmero decimal 5,625. La conversacin de este nmero binario involucra dos
procesos segn se muestra en la Figura I-G:

1. La parte entera del nmero (5) es procesada por divisin repetida entre 2. El decimal 5 se convierte en
101
2

2. La parte fraccionaria del nmero decimal (.625) es convertida al binario .l0l
2
por multiplicacin repetida
por 2.
Las secciones entera y fraccionaria del decimal 5.625
10
se juntan para dar el binario 101.101
2
Rta.

O sea para casos como el ejemplo anterior, el valor binario se comienza a formar desde la vecindad del punto
binario como se muestra en el siguiente esquema:

101.101
2



Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras
Si ahora quisiramos convertir este valor en decimal nuevamente el proceso se apoyara en una expresin
como la que mostramos a continuacin:
[2
-1
]

+ +
12
2
+02
1
+12
0
.1

+ 0

+ 1



NMEROS HEXADECIMALES
El sistema de numeracin hexadecimal tiene una raz de 16. Se denomina Sistema Numrico en Base 16.
Utiliza los smbolos 0-9, A, B, C, D, E y F como se muestra en la columna hexadecimal de la tabla de la
Figura I- H. O sea se asocian del modo siguiente:

A representa al 10,
B representa al 11,
C representa al 12,
D representa al 13,
E representa al 14,
F representa al 15.

La ventaja del sistema hexadecimal es que es til para convertir directamente nmeros binarios de 4 bits.
Observar en la seccin sombreada de la Figura I- H que cada nmero binario de cuatro bits, del 0000 al 1111,
puede ser representado por un nico dgito hexadecimal.

Observar la lnea que corresponde al 16 en la columna decimal de la Figura I- H. El hexadecimal equivalente
es 10. Esto muestra que el sistema de numeracin hexadecimal utiliza la idea de valor por posicin. El 1 (en
l0
16
) significa 16 unidades, mientras que el 0 significa cero unidades. Como ejemplo se proceder a convertir
el nmero hexadecimal 2B6 en decimal. La Figura I- I muestra el proceso familiar. EL 2 est en la posicin
del 256, por tanto 2 x 256 = 512, que se escribe en la lnea decimal. El digito hexadecimal B aparece en la
columna del 16. Observar en la Figura I- H que el hexadecimal B corresponde al decimal ll. Esto significa que
hay once 16 (16 x 1 l), dando 176. El 176 se suma al total decimal en la parte inferior de la Figura I- I. La
columna del 1 muestra seis 1. El 6 se suma a la lnea decimal. Los valores decimales son sumados (512 + 176
+ 6 = 694
10
) dando 694
10
La Figura muestra que 2B6
16
es igual a 694
10.
Como otro ejemplo, convertir el
nmero hexadecimal A3F.C en su decimal equivalente. La Figura I- I detalla este problema. Primero
considerar la columna del 256. El dgito hexadecimal A

Las transformaciones hechas en los dos ejemplos anteriores podemos expresarlas tambin como:

1. Caso: 2B6 216
2
+1116
1
+616
0
.= 694
10

2. Caso: A3F.C A16
2
+316
1
+F16
0
.C

= 2623.75
10



Ahora invertir el proceso y convertir el nmero decimal 45 en su equivalente hexadecimal. La Figura I-J,
detalla el proceso familiar de divisin repetida por 16. El nmero decimal 45 se divide primero por 16, dando
2 de cociente con resto 13. El resto 13 (D en hexadecimal) se convierte en el LSD del nmero hexadecimal. El
cociente (2) se transfiere a la posicin del dividendo y se divide por 16. As se obtiene un cociente de 0 con un
resto de 2. El 2 se convierte en el siguiente dgito del nmero hexadecimal. El proceso finaliza cuando la
parte entera del cociente es 0. El proceso de la Figura I-J, convierte el nmero decimal 45 en el nmero
hexadecimal 3D. Otro ejemplo es convertir el nmero decimal 250.25 a hexadecimal. La conversin dcbc
hacerse utilizando dos procesos como muestra la Figura I-J, La parte entera del nmero decimal (250) se
Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras
convierte en hexadecimal utilizando el proceso de divisin repetida por 16. Los restos de 10 (A en
hexadecimal) y 15 (F en hexadecimal) forman el nmero hexadecimal entero FA.

La parte fraccionaria del 250.25 se multiplica por 16 (0.25 x 16). El resultado es 4.00. El entero 4 es
transferido a la posicin mostrada en la Figura I-K . La conversin completa muestra que el nmero decimal
250.25 es igual al hexadecimal FA.4.La principal ventaja del sistema hexadecimal es su fcil conversin al
binario.
La Figura I-K muestra el nmero hexadecimal 3B9 convertido a binario. Observar que cada dgito
hexadecimal forma un grupo de cuatro dgitos binarios o bits. Los grupos de bits son entonces combinados
para formar el nmero binario. En este caso 3B9
16
, es igual a 001110111001
2
.

Otra conversin hexadecimal a binario se detalla en la Figura I-K De nuevo, cada dgito hexadecimal forma
un grupo de cuatro bits en el nmero binario. El punto hexadecimal es bajado para formar el punto binario. El
nmero hexadecimal 47.FE se convierte en el nmero binario 01000111.11111110. Es claro que los nmeros
hexadecimales, debido a su compactacin, son mucho ms fciles de escribir que largas cadenas de 1 y 0 en
binario. El sistema hexadecimal puede considerarse como un mtodo abreviado de escribir nmeros binarios.

La Figura (c) muestra la conversin del nmero binario 101010000101. A hexadecimal. Primero
dividir el nmero binario en grupos de cuatro bits comenzando en el punto binario. Cada grupo de
cuatro bits se traduce a su dgito hexadecimal equivalente. La Figura I-K muestra que el nmero binario
101010000101 es igual al hexadecimal, A85. Otra conversin binaria a hexadecimal se ilustra en la Figura I-
K. Aqu el nmero binario 10010.011011 se traduce a hexadecimal. Primero el nmero binario se divide en
grupos de cuatro bits comenzando en el punto binario. Tres 0 se aaden al grupo de mas a la izquierda,
formando 0001. Dos 0 se aaden al grupo de mas a la derecha, formando 1100. Cada grupo tiene ahora 4 bits
y se traduce a un dgito hexadecimal como muestra la Figura I-K El nmero binario 00010010.01101100
2
es
igual a 12.6C
16
. En la prctica, muchas modernas calculadoras manuales realizan conversiones entre sistemas
de numeracin. La mayora pueden convertir entre decimal, hexadecimal. Octal y binario. Estas calculadoras
tambin pueden realizar operaciones aritmticas en varias bases (como por ejemplo hexadecimal).

PROBLEMAS RESUELTOS

1)
(Div. Consecutiva) _ D
entero
B
Resumen de Mtodos (Mul. Consecutiva) _ D
fraccionario
H
Segn el sentido de (Exp. Poli nmica) _ D B
(Exp. Poli nmica) _ D H
2) Par los casos de divisin consecutiva, el cociente sera la raz de sistema numrico del cual se trate.

3) Para los casos valores fraccionarios se procede a multiplicar consecutivamente por la raz del
sistema numrico destino o sea binario, hexadecimal, octal, etc.







Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras




(BINARIOS)













































Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras


































(EXADECIMALES)















Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras


















































Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras


















































Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras
Figura - A


























Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras
Figura - B


























LSB (Less Significant Bit)
Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras
Figura - C1; 2; 3











Figura I-D





Figura I-E








Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras
Figura I- F








Figura I-G

















Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras

Figura - H












Figura I-I












Lenguaje Ensamblador
Ing. Romn Fernando Ruch Romn / Figuras
Figura I-J







Figura I-K

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