Ensamblador
Enviado por guitarfireemm • 12 de Febrero de 2013 • 1.703 Palabras (7 Páginas) • 396 Visitas
ENSAMBLADOR
1. Sistemas Numéricos
Un sistema numérico es un conjunto de reglas y símbolos que nos permiten
escribir números.
Números: reales negativos y positivos, y enteros negativos y positivos.
Representación de números enteros no negativos
Sea R (base o radio) un número mayor o igual que 2, entonces pueden
representarse números enteros como una cadena de dígitos escogidos entre 0, 1, 2, ..., R-
1. Donde la cadena es la representación en base R del entero.
La base de un sistema numérico es el número de dígitos que pueden aparecer en
cada posición en el sistema numérico.
Ejemplo: R=3 dígitos={0,1,2}
Base 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ....
Base 3 0, 1, 2, 10, 11, 12, 20, 21, 22, 100, 101, 102, 110, 111, 112, 120, 121, 122,
Conversión entre bases
Sea el número a
k
a
k-1….a
1
, un entero en base R.
Para convertir este número de base R a base Q utilizamos la conversión:
a
kR
k-1
+a
k-1R
k-2
+…+a
1R
0
(Expresión uno)
Donde R es la base en la que se encuentra el número (base actual), k es el número
de dígitos que conforman el número y Q es la nueva base (se debe trabajar con aritmética
en base Q). Se le conoce como Representación Polinomial.
Ejemplos:
1) Convertir (100110)
2 ( )
10
R=2 k=6 Q=10 a6=1, a5=0, a4=0, a3=1, a2=1, a1=0
1*2
6-1
+0*2
6-2
+0*2
6-3
+1*2
6-4
+1*2
6-5
+0*2
6-6
= 1*2
5
+0*2
4
+0*2
3
+1*2
2
+1*2
1
+0*2
0
=
1*2
5
+1*2
2
+1*2
1
= 32+4+2 = 38
Finalmente obtenemos que: (100110)
2 (38)
10
2) Convertir (4302)
5 ( )
3MC Beatriz Beltrán Martínez
2
R=5 Q=3 k=4 a4=4, a3=3, a2=0, a1=2
Se debe trabajar con aritmética en base 3, por lo tanto necesitamos las tablas de suma
y multiplicación en base 3.
4*5
3
+3*5
2
+0*5
1
+2*5
0
= 11*12
3
+10*12
2
+2*12
0
= 11*11122+10*221+2*1 =
200112+2210+2 = 210101
Realizando las sumas y multiplicaciones debidas en base 3, obtenemos:
(4302)
5 (210101)
3
Conversión de números de base R a base 10 (donde R10) Algoritmo 1.
(Regla de Horner para la evaluación de polinomios)
1. i k, num 0
2. Mientras i1 hacer
num num*R+a
i
i i-1
fin_mientras
3. Fin
Ejemplo:
Convertir (4302)
5 ( )
10
Conversión de números de base 10 a base S (donde S 10) Algoritmo 2.
1. i 1, q 0, p 0
2. Repetir
q [x/s] (parte entera)
p x-q*s (residuo)
a
i p, i i+1, x q
hasta q=0
3. Fin
Ejemplo:
Convertir (577)
10 ( )
3
Conversión de números de base X a base 10 (donde X 10)
Números fraccionarios Algoritmo 3.
1. i m, num 0
2 .Mientras i>1hacer
num (num+bi)/X
i i-1
fin_mientras
3. FinMC Beatriz Beltrán Martínez
3
Ejemplo:
Convertir (.A06)
16( )
10
Conversión de números de base 10 a base S (donde S 10)
Números fraccionarios Algoritmo 4.
1. i 1
2. Mientras i m hacer
X x*s
Y [x] (parte entera)
X x-y, bi y, i i+1
fin_mientras
3. Fin
Donde m es el número de dígitos que se desean obtener, x es el número a
convertir inicialmente, S es la nueva base y bi
es el i-ésimo dígito del número en base s
tomando el orden b1b2…bm
Conversión de potencias de 2
Para convertir números de base 2 a base k, donde k puede expresarse como una
potencia de 2, es decir, k=2
x
donde x>1 y es un número entero, se llevan a cabo los
siguientes pasos:
1. Se agrupan de x en x los dígitos que se encuentran a la izquierda del punto,
comenzando a partir de él y aumentando ceros a la izquierda cuando es necesario.
2. Se agrupan de x en x los dígitos que se encuentran a la derecha del punto
comenzando a partir de éste y aumentando ceros a la derecha cuando sea
necesario.
3. Se sustituyen los grupos por los dígitos correspondientes en la base k.
Ejemplo:
(1110010100.011011)
2 ( )
16 Donde 16=2
4
0011 1001 0100 . 0110 1100 Resultado:
3 9 4 . 6 C (1110010100.011011)
2
a (394.6C)
16
Para convertir números de base k=2
x
a base 2, se sustituye cada dígito en base k
por los x dígitos binarios correspondientes.
Ejemplo:
(7402.61)
8 ( )
2 Donde 8=2
3
7 4 0 2 . 6 1 Resultado:MC Beatriz Beltrán Martínez
4
111 100 000 010 110 001 (7402.61)
8
a (111100000010.110001)
2
Complemento
El complemento es una forma de representar números negativos.
Si la base es 2,
...