01 Introduccion Al Lenguaje Ensamblador
01 Introduccion Al Lenguaje Ensamblador
01 Introduccion Al Lenguaje Ensamblador
Conceptos básicos
John Von Neumann
Concepto de “Programa Almacenado”
Introducción a Lenguaje Ensamblador
Conceptos básicos
Lenguaje de Máquina:
“lista de códigos que la máquina interpreta como
instrucciones, describe las capacidades de
programación que tenemos de ella; es el lenguaje más
primitivo”
Lenguaje Ensamblador:
“es la primera abstracción del Lenguaje de Máquina,
consistente en asociar a los códigos de operación
(opcodes) palabras clave que faciliten su uso por parte
del programador”
Introducción a Lenguaje Ensamblador
Niveles Jerárquicos del Computador
Introducción a Lenguaje Ensamblador
Evolución de los lenguajes computacionales
Ventajas: Desventajas
1. Velocidad 1. Tiempo de programación
2. Eficiencia de tamaño 2. Programas fuente grandes
3. Flexibilidad 3. Peligro de afectar recursos
inesperadamente
4. Falta de portabilidad
Introducción a Lenguaje Ensamblador
Comparación entre el Lenguaje Ensamblador y los Lenguajes de Alto Nivel
Representación y Tipos de Datos
Cómo el CPU ve la información en los distintos tipos de datos
1.Caracteres
2.Cadenas
3.Arreglos
4.Números enteros sin signo
5.Números enteros con signo
6.Punto flotante
Representación y Tipos de Datos
1. Caracteres
El CPU solamente puede procesar números, por lo que todos
los otros datos deben representarse en términos numéricos, por
lo que los caracteres son una abstracción de datos,
“A” es 41h
20h
“a” es 61h
Representación y Tipos de Datos
1. Caracteres
Muchos de los sistemas actuales adoptan códigos Unicode, un
sistema de 16 bits que puede codificar los caracteres de todos los
idiomas del mundo.
un caractér
un número sin signo
un número con signo
parte de un entero de varios bytes
parte de un número de punto flotante de varios bytes
Representación y Tipos de Datos
2. Cadenas
Una cadena es una secuencia de caracteres. Se utiliza para guardar
textos. Dado que la longitud es dinámica, se usan algunos bits extras
con información sobre la longitud máxima, la longitud real de la
cadena o un indicador de fin de cadena.
Nibble 0110
Byte 11110000
0.5000
x 2
1.0000
Representación y Tipos de Datos
4. Números enteros sin signo
Conversión entre bases
0.8125
• Ignorando el valor de las x 2
unidades en cada paso, 1.6250
continuamos multiplicando
cada parte fraccionaria por 0.6250
la base. x 2
1.2500
0.2500
x 2
0.5000
0.5000
x 2
1.0000
Representación y Tipos de Datos
4. Números enteros sin signo
Conversión entre bases
0.8125
• Terminamos cuando el x 2
producto es cero o hasta que 1.6250
hemos alcanzado el número
deseado de dígitos binarios. 0.6250
• Nuestro resultado, leyéndolo x 2
de arriba hacia abajo es: 1.2500
0.2500
0.812510 = 0.11012 x 2
0.5000
• Este método también funciona
con cualquier base. 0.5000
Simplemente use la base de x 2
destino como multiplicador. 1.0000
Representación y Tipos de Datos
4. Números enteros sin signo
Conversión entre bases
• Convirtiendo Base 6 a Base 10
123.456 = ????.????10
1236 = 1 x 62 + 2 x 61 + 3 x 60 =
1236 = 1 x 36 + 2 x 6 + 3 x 1 = 51
0.456 = 4 x 1 / 6 + 5 x 1 / 36 = 0.805555…
123.456 = 51.80555510
Representación y Tipos de Datos
4. Números enteros sin signo
Conversión entre bases
• Convirtiendo Base 10 a Base 6
754.9410 = ????.????6
75410 = 7 x 100 + 5 x 10 + 4 x 1
75410 = 116 x 2446 + 5 x 146 + 4 x 16 = ???.???6
75410 = 32546
Representación y Tipos de Datos
4. Números enteros sin signo
Conversión entre bases
• Convirtiendo Base 10 a Base 6
0.9410 = 0.????6 754.9410
0.94 x 6 = 5.64 --- 5
0.64 x 6 = 3.84 --- 3 =
0.84 x 6 = 5.04 --- 5
0.04 x 6 = 0.24 --- 0 3254.5350123501235012..6
0.24 x 6 = 1.44 --- 1
0.44 x 6 = 2.64 --- 2
0.64 x 6 = 3.84 --- 3
¿Complemento a dos?
¿Complemento a uno?
37 = 0010 0101
1101 1010
+1
1101 1011 = -37
Representación y Tipos de Datos
4. Números enteros con signo
Complemento a 1
Complemento a 2