M.C. José Andrés Vázquez Flores Primavera 2013 ENSAMBLADOR.

36
Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación M.C. José Andrés Vázquez Flores Primavera 2013 ENSAMBLADOR

Transcript of M.C. José Andrés Vázquez Flores Primavera 2013 ENSAMBLADOR.

Benemrita Universidad Autnoma de Puebla Facultad de Ciencias de la Computacin

Benemrita Universidad Autnoma de PueblaFacultad de Ciencias de la ComputacinM.C. Jos Andrs Vzquez FloresPrimavera 2013ENSAMBLADORSistemas de NumeracinIntroduccinUn sistema de numeracin es un conjunto de smbolos y reglas de generacin que permiten construir todos los nmeros vlidos en el sistema.Un sistema de numeracin puede representarse como: N =(S,R)donde:N es el sistema de numeracin considerado.S es el conjunto de smbolos permitidos en el sistema.R son las reglas que nos indican qu nmeros son vlidos en el sistema, y cules no.N p.ej. decimal, binario, etc.S En el caso del sistema decimal son {0,1...9}; en el binario son {0,1}; en el octal son {0,1...7}; en el hexadecimal son {0,1...9,A, B, C, D, E, F}R En un sistema de numeracin posicional las reglas son bastante simples, mientras que la Numeracin romana requiere reglas algo ms elaboradas.

45IntroduccinEstas reglas son diferentes para cada sistema de numeracin considerado, pero una regla comn a todos es que para construir nmeros vlidos en un sistema de numeracin determinado slo se pueden utilizar los smbolos permitidos en ese sistema.Para indicar en qu sistema de numeracin se representa una cantidad se aade como subndice a la derecha el nmero de smbolos que se pueden representar en dicho sistema.RepresentacinSea R (base o radio) un nmero mayor o igual que 2, entonces pueden representarse nmeros entero no negativos como una cadena de dgitos escogidos entre 0, 1, 2, ..., R-1.

La base de un sistema numrico es el nmero de dgitos que pueden aparecer en cada posicin en el sistema numrico.Ejemplo: R=3 dgitos={0,1,2}Conversin entre BasesSea el nmero akak-1.a1, un entero en base R.Para convertir este nmero de base R a base Q utilizamos la conversin:akRk-1+ak-1Rk-2++a1R0 Expresin 1

Donde R es la base en la que se encuentra el nmero (base actual), k es el nmero de dgitos que conforman el nmero y Q es la nueva base (se debe trabajar con aritmtica en base Q).Representacin polinomial (expresin 1)48Conversin entre BasesConvertir (100110)2 ( )10

R=2, k=6, Q=10 a6=1, a5=0, a4=0, a3=1, a2=1, a1=0

1*26-1+0*26-2+0*26-3+1*26-4+1*26-5+0*26-6= 1*25+0*24+0*23+1*22+1*21+0*20=1*25+1*22+1*21 = 32+4+2 = 38Conversin entre BasesConvertir (4302)5 ( )3 R=5, Q=3, k=4a4=4, a3=3, a2=0, a1=2Se debe trabajar con aritmtica en base 3, por lo tanto necesitamos las tablas de suma y multiplicacin en base 3.4*53+3*52+0*51+2*50 =11*123+10*122+2*120 =11*11122+10*221+2*1 = 200112+2210+2 = 210101En Base 3 221*12 1212 22111122Conversin entre Bases+012*012001200001121010122210112021112*1210112221Conversin entre BasesPara pasar un nmero entero N de base 10 a base R se deben realizar las siguientes operaciones:Dividir el nmero N en base 10 entre la base a convertir.Se toma el cociente Ci y se vuelve a dividir entre la base.Este proceso se continua hasta que el cociente Cn sea menor que R.El nmero en base 10, se toma primero el ltimo cociente obtenido (Cn) y de ah del ltimo residuo al primero.Conversin entre Bases C1 C2 Cn R NR C1R Cn-1 bm bm-1 b1

Donde Cn=1 hacer num num*R+ai i i-1 fin_mientras3. FinConversin entre BasesConversin de nmeros de base 10 a base S (donde S 10). Algoritmo 2.

1. i 1, q 0, p 02. Repetir q [x/s] (parte entera) p x-q*s (residuo) ai p, i i+1, x q hasta q=03. FinConversin entre BasesConversin de nmeros de base X a base 10 (donde X 10). Algoritmo 3. Nmeros fraccionarios

1. i m, num 02 .Mientras i>=1hacer num (num+bi)/X i i-1 fin_mientras3. FinConversin entre BasesConversin de nmeros de base 10 a base S (donde S 10). Algoritmo 4.Nmeros fraccionarios 1. i 12. Mientras i 1 y es un nmero entero, se llevan a cabo los siguientes pasos:Se agrupan de x en x los dgitos que se encuentran a la izquierda del punto, comenzando a partir de l y aumentando ceros a la izquierda cuando es necesario.Se agrupan de x en x los dgitos que se encuentran a la derecha del punto comenzando a partir de ste y aumentando ceros a la derecha cuando sea necesario.Se sustituyen los grupos por los dgitos correspondientes en la base k.Conversin entre Bases(1110010100.011011)2 ( )16 Donde 16=240011 1001 0100 . 0110 1100 3 9 4 . 6 CPor lo que (1110010100.011011)2 (394.6C)16Para convertir nmeros de base k=2x a base 2, se sustituye cada dgito en base k por los x dgitos binarios correspondientes.(7402.61)8 ( )2Donde 8=23 7 4 0 2 . 6 1111 100 000 010 . 110 001Por lo que (7402.61)8 (111100000010.110001)2Operaciones AritmticasExisten varias operaciones aritmticas que se pueden ejecutar en nmeros binarios y hexadecimales, por ejemplo, se puede sumar, restar, multiplicar, dividir y otras operaciones aritmtica.Suma y multiplicacin en binario:+01*010010001110Carry o acarreo10164Operaciones AritmticasEjemplo:

1011011010110 11000110001001+ 1101110110100 - 10000101101110 11001010001010 01000000011011

11011101010101 11001101110001+ 11110010101101 - 10011000101001 111010000000010 00110101001000Operaciones AritmticasPara la multiplicacin y divisin:

10010011*110010 1011010 100100110 1001 1100101110 1001001100 1110 10010011 1011 1110010110110 1011 100+0123456789ABCDEF00123456789ABCDEF1123456789ABCDEF10223456789ABCDEF101133456789ABCDEF1011124456789ABCDEF10111213556789ABCDEF101112131466789ABCDEF1011121314157789ABCDEF10111213141516889ABCDEF101112131415161799ABCDEF101112131415161718AABCDEF10111213141516171819BBCDEF101112131415161718191ACCDEF101112131415161718191A1BDDEF101112131415161718191A1B1CEEF101112131415161718191A1B1C1DFF101112131415161718191A1B1C1D1ETabla de suma en base 16*0123456789ABCDEF0000000000000000010123456789ABCDEF202468ACE10121416181A1C1E30369CF1215181B1E2124272A2D4048C1014181C2024282C3034383C505AF14191E23282D32373C41464B606C12181E242A30363C42484E545A707E151C232A31383F464D545B62698081018202830384048505860687078909121B242D363F48515A636C757E87A0A141E28323C46505A646E78828C96B0B16212C37424D58636E79848F9AA5C0C1824303C4854606C7884909CA8B4D0D1A2734414E5B6875828F9CA9B6C3E0E1C2A38465462707E8C9AA8B6C4D2F0F1E2D3C4B5A69788796A5B4C3D2E1Tabla de multiplicar en base 16Nmeros NegativosSigno y Magnitud: En esta representacin, el dgito ms significativo indicar el signo del nmero, esto es, el 1 representa un valor negativo y el 0 un valor positivo y los restantes dgitos sern la magnitud.Representacin a 4 dgitos:0000 +00001 +10010 +20011 +30100 +40101 +50110 +60111 +71000 -01001 -11010 -21011 -31100 -41101 -51110 -61111 -7Nmeros NegativosAlgoritmo de suma y resta:Sean an an-1 a0 y bn bn-1 b0 nmeros binarios en signo y magnitud.Tienen signos iguales? (an = bn)Si: Sumar las magnitudes quedando el resultado en: cn-1 c0 y cn an bn.No: Comparamos magnitudes y dejamos en cn el signo del mayor. Restamos a la magnitud mayor la menor y el resultado queda en cn-1 c0.La magnitud cn-1 c0 excede el rango?Si: Indicar un error (Overflow)No: el resultado en cn cn-1 c0.Nmeros NegativosComplemento a 1 (C1): Esta representacin se obtiene para los nmeros negativos y se realiza en base al nmero positivo en binario convirtiendo los 0 en 1 y los 1 en 0.Representacin a 4 dgitos:0000 +00001 +10010 +20011 +30100 +40101 +50110 +60111 +71111 -01110 -11101 -21100 -31011 -41010 -51001 -61000 -7Nmeros NegativosAlgoritmo de suma y resta:Tomar el C1 de los nmeros negativos.Sumar los operandos.Existe carry?Si: Sumar uno al resultado.Hay overflow?Si: Indicar un error (Overflow)No: el resultado en cn cn-1 c0.Nmeros NegativosComplemento a 2 (C2): Esta representacin se obtiene para los nmeros negativos y se obtiene efectuando primero el C1 y despus sumar uno.Representacin a 4 dgitos:0000 +00001 +10010 +20011 +30100 +40101 +50110 +60111 +70000 -01111 -11110 -21101 -31100 -41011 -51010 -61001 -71000 -8Nmeros NegativosAlgoritmo de suma y resta:Tomar el C2 de los nmeros negativos.Sumar los operandos.Se toman n (menos significativas) posiciones si hay carry.Hay overflow?Si: Indicar un error (Overflow)Operaciones LgicasConjuncin (.)Disyuncin (+)

Negacin (-)Or- exclusivo ()pqp.qpqp+q111111100101010011000000p-ppqpq1011001101011000CdigosToda la informacin en la computadora es almacenada en dgitos binarios, los cuales son representados por medio de un agrupamiento de los mismos como caracteres de instrucciones o nmeros.Estos agrupamientos definen cdigos, de ah que un cdigo pueda definirse como un conjunto de reglas para interpretar grupos de bits.CdigosBIT: Dgito binario, es una celda de almacenamiento, se puede almacenar un 0 o un 1.BYTE: Unidad de almacenamiento equivalente a 8 bits.Cdigo ASCII: Acrnimo ingls de American Standard Code for Information Interchange, es un cdigo de caracteres basado en el alfabeto latino tal como se usa en ingls moderno y en otras lenguas occidentales. Fue creado en 1963. CdigoEBCDIC: Extended Binary Coded Decimal Interchange Code, es un cdigo estndar de 8 bits usado por computadoras mainframe IBM. EBCDIC es un cdigo binario que representa caracteres alfanumricos, controles y signos de puntuacin.Cdigo Gray: Es un sistema de numeracin binario en el que dos valores sucesivos difieren solamente en uno de sus dgitos. Fue diseado para prevenir seales de los switches electromecnicos. Actualmente es usado para facilitar la correccin de errores en los sistemas de comunicaciones.