MANUALES

Programación Ensamblador

5. Sistemas numéricos

Aunque no parezca razonable pasar de la instruccion Move a los sistemas numèricos , en realidad el capitulo anterior cumple la funcion de darle a conocer el manejo de determinados registros y determinadas formas de hacerlo.

El presente capitulo pretende darle a conocer los tipos de sistemas numèricos que normalmente va a usar, como se pasa o realiza la conversion de un sistema a otro.

Sistema decimal

El sistema decimal es el que practicamente todos usamos, osea de 1 al infinito, dicho sistema de basa en la unidad , osea el uno, todos son multiplos o producto de la suma de unidades (2 = 1 + 1) y asi sucesivamente.

Sistema Hexadecimal

El sistema hexadecimal esta basado en los valores del 1 al 15 , compuesto por los numeros del 0 al 9 y por las letras A,B,C,D,E,F quedando la tabla de valores de la siguiente forma:

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

Sistema Binario

El sistema se basa en valores, el 0 y el 1, aunque con la union de ambos es puede crear cualquier numero. Para cada valor posee una determinada caracteristica , siendo su tabla de valores del 0 al 15 asi:

0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15

Esto se denomina numeracion binaria en base de 4 bits, el significado de la palabras bit , identifica a cada uno de los valores de que esta compuesto, puesto que esta compuesto de 4 posible valores de 0 o 1 , por ejemplo el 1 e 0001 , osea 3 ceros y un 1, osea 4 bit.

Bit tambien es la unidad màs pequeña de informacion que utilizan los ordenadores, se dice la mas pequeña puesto que esta ya no se puede dividir en mas valores que el 0 el 1.

Conversion del sistema binario al sistema decimal

Trabajando en el lenguaje ensamblador nos encontramos con la necesidad de convertir números del sistema binario, que es el empleado por los ordenadore en sus operaciones mas elementales, al sistema decimal.

El sistema binario está basado en 1 o 0, siendo 1 como valor activo y el 0 como inactivo.

Para la conversión se utiliza la siguiente formula:

Por ejemplo, si tenemos el numero binario 10011, tomamos de derecha a izquierda cada dígito y lo multiplicamos por la base elevada a la posición que ocupan (comenzando por la pocisión cero):

Binario: 1 0 0 1 lo separamos de uno en uno de derecha a izquierda:

el 1*(2^0)= 0
el 0*(2^1)= 0
el 0*(2^2)= 0
el 1*(2^3)= 8

y sumamos los valores de los resultados 0 + 0 + 0 + 8 = 16 en decimal.

El caracter ^ significa de potencia del numero es pecificado, en este caso el 2, y el caracter * se usa para la multiplicación.

Como habra podido observar el 2 va desde su potencia de 0 osea 2^0 hasta en este caso el 2^3, pero si el numero en vez de ser de 4 bits fuera de mas (8,16,32..), el dos seguiria elevando su pontencia, de modo el el quinto si fuera un 1, multiplicaria el 1 por 2^4 y asi sucesivamente.

Conversion del sistema decimal al sistema binario

Ahora es la operaciòn inversa a la anterior, pasar de decimal a binario.

Para ello la operaciòn, aunque hay varias, consiste en dividir el numero entre dos de la siguiente manera:

Supongamos el numero 33 en decimal:

33 lo dividimos entre 2 y da 16 con resto de 1
16 lo dividimos entre 2 y da 8 con resto de 0
8 lo dividimos entre 2 y da 4 con resto de 0
4 lo dividimos entre 2 y da 2 con resto de 0
2 lo dividimos entre 2 y da 1 con resto de 0
1 lo dividimos entre 2 y da 0 con resto de 1 aqui siempre es resto 1, pues no se puede utilizar 0.5

Pues ahora solo tenemos que coger los restos de cada division y ponerlos de derecha a izquierda: 100001

Conversion del sistema hexadecimal

En este sistema para pasar del decimal al hexadecimal , primero debera pasarlo a binario y la operacion de binario a hexadecimal es:

Se coge el numero binario en grupos de 4 bits de derecha a izquierda, sirvamonos del numero en binario 111101

lo cogemos de derecha a izquierda en grupo de 4 , quedando asi: 11 y 1101, como el primer grupo se nos queda con solo 2 cifras (11) , le añadimos al pricipio los ceros que necesite para completarse a cuatro bits, en este caso 2 ceros, quedando entonces asi 0011 y por lo tanto el numero quedaria asi: 0011 y 1101

Cogemos el primer grupo de 4 bits osea el 0011 y cogemos la tabla de valores del sistema binario

0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15

Como puede observar

El 0011 corresponde al 2

El 1101 corresponde al 13

Ahora cogemos los valores que antes nos pusimos en la tabla para el sistema hexadecimal y deciamos que teniamos:

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

El 2 que teniamos de la tabla de binario al buscarlo en la hexadecimal corresponde tambien al 2

El 13 que teniamos de la tabala de binario corresponde en la hexadecimal a la D, puesto que a partir del 9, la A es el 10, la B es el 11, la C es el 12, la D es el 13, la E es el 14 y la F es el 15.

Por lo tanto

El numero 111101 en hexadecimal es el 2D, tenga cuidado por que los numeros hexadecimales se representan siempre terminados en H osea 2DH seria nuestro numero, pero la H no tiene ningun valor mas que el de informar que se trata de un numero hexadecimal.

Páginas:
1 2 3 4 5 6 7 8 9 10 11