Sei sulla pagina 1di 28

SIS 330 LENGUEAJE ENSAMBLADOR

TEMA N 1 CONCEPTOS BASICOS FUNDAMENTALES

SISTEMAS DE NUMERACION
El sistema de numeracin que utilizamos para realizar operaciones matemticas es el decimal (base 10) :
Existen 10 dgitos (0, 1, 2,, 9). Numerando de derecha a izquierda, comienzan por el primer digito multiplicado por 100.

Los equipos de computacin utilizan el sistema binario para realizar su trabajo de procesamiento (base 2) :
Dos dgitos (0 y 1). Numerando de derecha a izquierda, empiezan por el primer digito multiplicado por 20.

SISTEMA DECIMAL
Deriv del sistema numrico indoarbigo; posiblemente se adopt este mismo por contar con diez dedos en las manos. Denominado sistemas posicionales. Utiliza como base el 10, (0 1 2 3 4 5 6 7 8 9). Una cantidad, denominada nmero decimal, se puede expresar como:

N (digito)
0

i d

(base)

Donde: base = 10, i = posicin respecto a la coma, d = numero de dgitos a la izquierda de la coma, N = numero de dgitos a la izquierda de la coma, dgito = cada uno de los que componen el nmero. Ejemplo: 192 = 1 x 103 + 9 x 102 + 9 x 101 + 2 x 100

SISTEMA BINARIO
Utiliza internamente el hardware de las computadoras. Se basa en la representacin de cantidades utilizando 0 y 1. Su base es 2 (nmero de dgitos del sistema). Cada dgito de un nmero en este sistema se denomina bit (contraccin de binary digit). Cuatro bits se denominan cuaterno o nibblie (ejemplo: 1001). Ocho bits octeto o byte (ejemplo: 10010110). 1024 Bytes se denomina 1 Kilobyte. 1024 Kilobytes se denominan 1 Megabyte 1024 Megabytes se denominan 1 Gigabyte. 1024 Gigabytes se denominan 1 Terabyte. 1024 Terabytes se denominan 1 Petabyte.

SISTEMA OCTAL
Sistema de numeracin de base 8. Utiliza 8 (0 1 2 3 4 5 7). Sistema denominado tambin posicional, la posicin de sus cifras se mide con relacin a la coma decimal que en caso de no aparecer se supone implcitamente a la derecha del nmero. La aritmtica en este sistema similar al de los sistemas binarios y decimal.

SISTEMA HEXADECIMAL
Sistema posicional Base 16 (0 1 2 3 4 5 6 7 8 9 A B C D E F) Los valores de los smbolos son:
A = 10 B = 11 C = 12 D = 13 E = 14 F = 15

Sistema numrico de mucha utilidad, en operaciones internas del computador.

CAMBIOS DE BASE DE NUMERACION


CONVERSIN DECIMAL-BINARIO Se divide sucesivamente el nmero decimal por 2 y los cocientes que se van obteniendo, hasta que una de las divisiones se haga 0. El numero es la escritura de todos los restos orden inverso Ejemplo: 10 / 2 = 5 0 5 /2=2 1 2/2=1 0 1/2=0 1 Numero binario: 01010 CONVERSIN DE UNA FRACCIN DECIMAL A BINARIO Se multiplica la fraccin por 2, obteniendo en la parte entera del resultado el primero de los dgitos binarios de la fraccin binaria que buscamos. Repetimos el mismo proceso con la parte fraccionaria del resultado anterior, obteniendo en la parte entera del nuevo resultado el segundo de los dgitos buscados. Iteramos sucesivamente, hasta que desaparezca la parte fraccionaria o hasta que tengamos los suficientes dgitos binarios que nos permitan no sobrepasar un determinado error.

CONVERSIN DE BINARIO A DECIMAL


Reescribir l nmero binario en posicin vertical de tal forma que la parte de la derecha quede en la zona superior y la parte izquierda quede en la zona inferior. Se repetir el siguiente proceso para cada uno de los dgitos comenzados por el inferior: Se coloca en orden descendente la potencia de 2 desde el cero hasta n, donde el mismo el tamao del nmero binario. Ejemplo, convertir 1001 a base 10: 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 8 + 0 + 0 + 1 = 9 Ejemplo, convertir 1001.1 a base 10: 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 = 8 + 0 + 0 + 1 + 0.5 = 9.5

CONVERSIN DECIMAL OCTAL


Dividir un nmero y sus sucesivos cocientes obtenidos por ocho hasta llegar a una divisin cuyo cociente sea 0. El numero Octal buscado es el compuesto por todos los restos obtenidos escritos en orden inverso a su obtencin. Ejemplo: 1992 / 8 = 249 39 72 0 249 / 8 = 31 09 1 31 / 8 = 3 7 1992(10 = 3710(8

CONVERSIN DE UNA FRACCIN DECIMAL A UNA OCTAL


Se toma la fraccin decimal y se multiplica por 8, obteniendo en la parte entera del resultado el primer dgito de la fraccin octal resultante y se repite el proceso con la parte decimal del resultado para obtener el segundo dgito y sucesivos. El proceso termina cuando desaparece la parte fraccionaria del resultado o dicha parte fraccionaria es inferior al error mximo que deseamos obtener. Ejemplo: 0.140625 x 8=1.125 0.125 x 8=1.0 0.140625(10)=0.11(8)

CONVERSIN OCTAL A DECIMAL


Existen varios mtodos. El ms generalizado el indicado por el TFN (Teorema fundamental de la numeracin) que hace la conversin de forma directa por medio de la formula. Ej. : utilizando el teorema fundamental de la numeracin tenemos que 4701 es igual a: 4 x 83 + 7 x 82 + 0 x 81 + 1 x 80 = 2048 + 448 + 0 + 1 = 2497(10

CONVERSIN DECIMAL HEXADECIMAL


Se divide el nmero decimal y los cocientes sucesivos por 16 hasta obtener un cociente igual a 0. El nmero hexadecimal buscado ser compuesto por todos los restos obtenidos en orden inverso a su obtencin. Ejemplo: 1000 / 16 = 62 40 8 62 / 16 = 3 14 3 14 8 = 3E8 1000(10 = 3E8(16

CONVERSIN DE UNA FRACCIN DECIMAL A HEXADECIMAL


A la fraccin decimal se multiplica por 16, obteniendo en la parte entera del resultado el primer dgito de la fraccin hexadecimal buscada, y se repite el proceso con la parte fraccionaria de este resultado. El proceso se acaba cuando la parte fraccionaria desaparece o hemos obtenido un nmero de dgitos que nos permita no sobrepasar el mximo error que deseemos obtener. Ejemplo: Pasar a hexadecimal la fraccin decimal 0.06640625 0.06640625 x 16 = 1.0625 0.0625 x 16 = 1.0 0.06640625(10)=0.11(16)

CONVERSIN HEXADECIMAL - DECIMAL


El mtodo ms utilizado es el Teorema Fundamental de la Numeracin (TFN) que nos da el resultado. Ejemplo: utilizando el teorema fundamental de la numeracin tenemos que 2CA es igual a: 2 x 162 + C x 161 + A x 160 = 512 + 192 + 10 = 714(10

Para convertir un nmero hexadecimal a binario, se sustituye cada dgito hexadecimal por su representacin binaria segn la siguiente tabla.

CONVERSIN DE HEXADECIMAL-BINARIO
Para convertir un nmero hexadecimal a binario, se sustituye cada dgito hexadecimal por su representacin binaria segn la siguiente tabla. Ejemplo, pasar el nmero 2BC a binario. [0010][1011][1100] = 001010111100(2
Dgito Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Dgitos Binarios 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

CONVERSIN DE OCTAL A BINARIO


Dgito Octal Dgitos Binarios 000 001 010 011 100 101 110 111

Para convertir un numero octal a binario se sustituye cada dgito octal en por sus correspondientes tres dgitos binarios segn la siguiente tabla.

0 1 2 3 4 5 6 7

Ejemplo, convertir el nmero octal 6534 en binario. [110][101][011][100] = 110101011100(2

ARITMETICA BINARIA
SUMA la suma de los dgitos binarios puede a lo mas, ser igual a la base. El nico acarreo distinto de cero que puede producirse es 1. Como en la suma decimal, dos nmeros binarios de dgitos mltiples se suman empezando con los bits menos significativos. Cualquier acarreo que resulte se aade a la suma de los siguientes bits significativos a la izquierda.
Suma binaria 10111.1 1011.11 1001.01 ----------10101.00 Suma decimal 11.75 9.25 -----21.00

RESTA

Si el dgito que se va a restar es mayor que el dgito correspondiente en el minuendo, se toma un uno del primer digito distinto de cero a su izquierda. El concepto de tomar prestado se aplica tambin en la resta binaria. Siempre que de un numero binario 1 se reste de un numero binario 0, debe pedirse prestado un 1 al primer digito distinto de 0 a la izquierda de esa posicin. Esto dejara un 0 en esa posicin y cambiara en 1 todos los dgitos 0 que intervienen hasta la posicin en cuestin. El cero en esa posicin se convierte en 10; la resta del 1 deja un digito 1. Las restas bsicas 0 - 0, 1 - 0 y 1 - 1 son evidentes: 0-0=0 1-0=1 1-1=0 0 - 1 = 1 (se transforma en 10 - 1 = 1) (en sistema decimal equivale a 2 - 1 = 1) La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posicin siguiente: 0 - 1 = 1 y me llevo 1, lo que equivale a decir en el sistema decimal, 2 - 1 = 1.

Sustraccin binaria 10011.01 -01100.11

Detalles

Equivalente decimal

11 .1 01 0 10011.01 -01100.11 -----------00110.10

19.25 -12.75 -------6.50

Para simplificar las restas y reducir la posibilidad de cometer errores hay varios mtodos: 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 Utilizando el complemento a dos. La resta de dos nmeros binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo. Ejemplo La siguiente resta, 91 - 46 = 45, en binario es: 1011011 1011011 -0101110 el C2 de 0101110 es 1010010 +1010010 0101101 10101101 En el resultado 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. Un ltimo ejemplo: vamos a restar 219 - 23 = 196, directamente y utilizando el complemento a dos: 11011011 11011011 -00010111 el C2 de 00010111 es 11101001 +11101001 11000100 111000100 Y, despreciando el bit que se desborda por la izquierda, llegamos al resultado correcto: 11000100 en binario, 196 en decimal. Utilizando el complemento a uno. La resta de dos nmeros binarios puede obtenerse sumando al minuendo el complemento a uno del sustraendo y a su vez sumarle el bit que se desborda.

MULTIPLICACION Se efecta al multiplicar el multiplicando por cada dgito del multiplicador y al sumar estos productos parciales, con la posicin de cada producto parcial sucesivo corrida una unidad a la izquierda. Si un digito multiplicador es 0, todos los dgitos del producto parcial correspondiente son 0; Si un digito multiplicador es 1, el producto parcial correspondiente es el mismo que el multiplicando. Ejemplo, multiplica dos nmeros binarios:
Multiplicacin binaria 10011 X 101 ------10011 00000 10011 -----------1011111 Equivalente decimal 11 .1 01 0 10011.01 -01100.11 -----------00110.10

DIVISION
Los paso que se efectan en la divisin de dos nmeros binarios son bastante similares a los de la divisin decimal, pero con algunas diferencias. En cada paso, el divisor de n bits se aplica a los n bits ms altos del dividendo, que empiece con un 1, ya sea una vez o cero veces. En el ltimo caso, el bit correspondiente del cociente parcial es cero. Luego se aade el siguiente bit ms significativo de dividendo, y el proceso hasta que aparece 1 en el cociente parcial. Despus se sustrae el divisor del dividendo en ese punto y el proceso continua. Ejemplo, dividir 100010010 (274) entre 1101 (13):. 100010010 |1101 -0000 010101 10001 - 1101 01000 -0000 10000 - 1101 00111 - 0000 01110 - 1101 00001

TABLA DE CONVERSIN ENTRE DECIMAL, BINARIO, HEXADECIMAL, OCTAL, BCD, EXCESO 3 Y CDIGO GRAY O REFLEJADO
Hexadecim al 0 1 2 3 4 5 6 7 8 9 A B C D E F Gray o Reflejado 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000

Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17

BCD 0000 0001 0010 0011 0000 0101 0110 0111 1000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101

Exceso 3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

NUMEROS NEGATIVOS
En un byte, se puede almacenar valores entre 0 255 (00h y FFh), tomando en cuenta en cuenta el carcter cclico de los valores de un byte en operaciones de suma podramos, por convenio, definir el negativo de un nmero como aquel que sumado a dicho numero nos da como resultado 00h. Ejemplo, FFh = -1 + 01h = 1 ------------------------00h 0 Es decir, que FFh es 255 si se considera que en un byte solo se puede almacenar nmeros positivos, o bien es -1 si se considera que en un byte se puede almacenar nmeros positivos o negativos.

+0 = 00h = 0000 0000b +1 = 01h = 0000 0001b +2 = 02h = 0000 0010b +3 = 03h = 0000 0011b +126 = 7Eh = 0111 1110b +127 = 7Fh = 0111 1111b

-1 = FFh = 1111 1111b -2 = FEh = 1111 1110b -3 = FDh = 1111 1101b -126 = 82h = 1000 0010b -127 = 81h = 1000 0001b -128 = 80h = 1000 0000b

Los nmeros negativos en binario poseen el primer bit de la izquierda igual a 1 (bit 7) y 0 para los positivos, este bit se denomina bit de signo. La configuracin 80h es especial, su negativo seria tambin 80h, debido a que 80h + 80h = 00h, por convenio se considera negativo (valor = 128), por tener el bit se signo igual a 1. El cero (ooh9 se considera positivo, pues el bit de signo es 0, en resumen la 256 configuraciones posibles se reparten de la siguiente manera: Valores positivos posibles: del 0 al 127 (total, 128 valores). Valores negativos posibles: del -1 al -128 (total, 128 valores). Para calcular la configuracin correspondiente al negativo de un numero dado, se halla el complementario de un cada digito y al nmero resultante se le suma uno.

El complementario de un digito es 1 digito, es decir, se cambian los unos por ceros y los ceros por uno. El complementario de un numero hexadecimal es F digito.

TIPOS DE DATOS EN MEMORIA


NUMEROS BINARIOS
Pueden ser con signo y sin signo, ocupan desde 1 byte hasta 4 palabras.

Tipo Byte Palabra Doble palabra Cudruple palabra Tipo Byte Palabra Doble palabra Cudruple palabra

Valor mximo (positivo) 1 = Fh =127 15 1 = 7FFFFh 2 =32767 31 1 = FFFFFFFh 2 =2147483648 263 1 = 7FFFFFFFFFFFFFFFh =9223372036854775807 27 Valor mximo 1 = FFh =255 4 1 = FFFFh 16 =65535 8 1 = FFFFFFFFh 16 =4294967295 1614 1 = FFFFFFFFFFFFFFFFh =1844674407370955161 5 162 Valor mximo (negativo) = 80h =-127 15 =8000h -2 =-32767 31 = 90000000h -2 =-2147483648 -263 = 8000000000000000h =-9223372036854775807 -22

Tipo Byte Palabra Doble palabra Cudruple palabra

NUMEROS DECIMALES DESEMPAQUETADOS


Cada byte contiene un BCD en los 4 bits inferiores (nibble inferior). Los 4 bits superiores son cero (nibble superior). Cada Byte puede almacenar un valor del 0 al 9(dgito decimal), estos dgitos utilizan la siguiente codificacin: Ejemplo, el 9873 se almacena en 4 bytes como 0000 1001 0000 1000 0000 0111 0000 0011b igual a 09 08 07 03h.

NUMEROS DECIMALES EMPAQUETADOS


Cada byte contiene dos dgitos BCD, el digito ms significativo se almacena en el nibble superior, cada byte puede almacenar un valor del 00 al 99 (dos dgitos decimales). Ejemplo, el 1234 se almacena en 2 bytes como 0001 0010 0011 0100 igual a 12 34h

Dgito 0 1 2 3 4 5 6 7 8 9

BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

CARACTERES ASCII Adicionalmente de representar valores numricos, los bytes se utilizan para representar caracteres, cada byte puede representar 256 caracteres posibles: Los primeros 128 (0 a 127), son caracteres ASCII estndar. Los ltimos 128 (128 a 255) son caracteres ASCII extendidos para el caso IBM PC. El cdigo ASCII (American Estndar Code for Information Interchange) es un convenio adoptado para asignar a cada carcter un valor numrico. El ASCII incluye:
Letras maysculas y minsculas. Dgitos decimales (0 al 9). Caracteres especiales como *, >, <, +, etc. Cdigo de control (32 primeros del 0 al 31), tiene dos significados:
Significado ASCII estndar (control de impresin, comunicaciones, retorno de carro, alimentacin de pgina, etc.). Representacin en pantalla de caracteres especiales (smbolos de la baraja, musicales, flechas, etc.).

Los caracteres ASCII extendidos incluyen:


Smbolos para dibujo de recuadros. Smbolos de relleno y sombreado. Letras griegas. Smbolos cientficos. Caracteres especiales para otros idiomas diferentes al ingles.

OPERACIONES LOGICAS
Se realizan a nivel de bits, pudiendo ser de uno o dos operandos.

OPERACIN LOGICA NO (NOT)


Es una operacin lgica de un solo operando definida como: Donde se cumple que NOT(NOT(x)) = x, donde en relacin a los nmeros negativos tenemos: -n = NOT(n) + 1 NOT(n) = -n -1 Ejemplo: NOT(1011b) = 0100b NOT(Bh) = 4h NOT(11) = 4

x 0 1

NOT(x) 1 0

OPERACINES LOGICAS Y (AND), O (OR) Y O EXCLUSIVO (XOR)


Son operaciones lgicas de dos operandos, con la siguiente definicin: AND vale 1 cuando ambos operandos son 1. OR vale 1 cuando alguno de los operandos es 1. XOR vale 1 cuando ambos operandos son distintos. Ejemplo: 1011b AND 0110b = 0010b Bh AND 6h = 2h 1011b OR 0110b = 1111b Bh OR 6h = Fh 1011b XOR 0110b = 1101b Bh XOR 6h = Dh

x 0 0 1 1

y 0 1 0 1

x AND y 0 0 0 1

x OR y 0 1 1 1

x XOR y 0 1 1 0

11 AND 6 = 2 11 OR 6 = 15 11 XOR 6 = 13

RELACIONES ENTRE LAS OPERACIONES LOGICAS


Existen relaciones como las leyes de Morgan: NOT(x AND y) = NOT(x) OR NOT (y) NOT(x OR y) = NOT(x) AND NOT(y) Que es similar a: x AND y = NOT(NOT(x) OR NOT(y)) x OR y = NOT(NOT(x) AND NOT(y)) x XOR y = (NOT(x) AND y) OR (x AND NOT(y)) Interpretando asumimos que AND puede expresarse mediante OR y NOT, OR puede expresarse mediante AND y NOT y XOR puede expresarse mediante NOT, OR y AND.

Potrebbero piacerti anche