Busca

Google

lunes, 17 de septiembre de 2007

Ensamblador


Lenguaje Ensamblador


-Variante(legible para el "hombre") del lenguaje maquina

-La mejor manera de comunicarse con la pc y con el
lenguaje de programacion que utilice.

-Genera un amplio panorama de como funciona la pc

-Facilidad y herramientas para el control de todo lo que la
pc puede realizar fisicamente.

-Indispensable para hacer programas que controlen la
entrada/salida de la pc

-Nos permite agregar nuevas interfaces de entrada/salida.

-Podemos crear rutinas para maximizar el uso del hardware.

Generalizando, se puede hacer todo lo que no pueden
llevar a cabo los demas lenguajes de programacion.

Ventajas del lenguaje ensamblador

Otros lenguaje no proporcionan control absoluto sobre la pc, ni
informacion fundamental de lo que sucede mientras el programa
se ejecuta.

¿porque no usar Basic, Clipper, Modula o C?

Con ensamblador se conoce mas a fondo la operacion de la pc.

Se permita implementar software o hardware de una manera mas
consciente (comprendiendo como y porque lo hace), en vez de
seguir “una receta fija”.

-Se tiene control total de lo que debera hacer su PC, cuando este sea
fisicamente capaz de hacerlo.

-Los programas creados son mucho mas rapidos, compactos y
tienen mayor capacidad que en otros lenguajes.

-Se pueden optimizar al maximo los programas tanto en tamaño
como en velocidad de ejecucion.

En otros lenguajes ya existe codigo que se genera predefinidamente,
haciendo muy dificil su optimizacion.

Tabla de comparacion en tamaño de un programa que
despliega el mensaje “Hola, que tal!”, echo en diferentes lenguajes:
Basic, Clippers y Ensamblador.

LenguajeFuenteObjetoEjecutable (.EXE)
Basic27 bytes651 bytes12 814 bytes
Clipper22 bytes572 bytes159 178 bytes
Ensamblador162 bytes169 bytes543 bytes


Problemas para trabajar con ensamblador

Una instruccion mal interpretada o un error de logica
puede crear un caos, que requiera apagar la pc y encenderla.

La insuficiencia de conocimientos sobre el funcionamiento de la pc
puede causar efectos impredecibles.

Es necesario ajustarse a una convencion respecto al uso de
interrupciones

El programa puede volverse mas complejo conforme se le agregan
rutinas o funciones adicionales.

La pc ejecuta lo que se le indica y no lo que uno piensa que debe
ejecutar.

BITS Y BYTES

La PC tiene un punto de partida y de control que es la CPU (Unidad Central de Procesamiento).

Toda la información almacenada en la PC es procesada dentro de celdas llamadas registros.

¿Qué es un registro?
Los registros son conjuntos de 8 o 16 flip-flops (basculadores o biestables).

¿Qué es un flip-flop?
Un flip-flop es un dispositivo capaz de almacenar dos niveles de voltaje, uno bajo, regularmente de 0.5 volts y otro alto comunmente de 5 volts. El nivel bajo de energía en el flip-flop se interpreta como apagado o 0, y el nivel alto como prendido o 1. A estos estados se les conoce usualmente como bits, que son la unidad mas pequeña de información en una computadora.

A un grupo de 16 bits se le conoce como palabra, una palabra puede ser dividida en grupos de 8 bits llamados bytes, y a los grupos de 4 bits les llamamos nibbles.



Un grupo de 16 bits se le conoce como palabra, y dicha palabra puede dividirse en grupos de 8 bits conocidos como bytes. Un grupo de 4 bits es conocido como nibble.

La CPU contiene ciertos registros de 16 bits que también pueden ser utilizados como si fueran de 8 bits. Un ejemplo de esto es el registro ax, que consta de 16 bits o flip-flops y puede almacenar un numero binario de 16 dígitos.





REPRESENTACION DE NUMEROS NEGATIVOS


Esto se realiza con la tecnica denominada “Complemento a dos”, dicha tecnica se define como el numero obtenido despues de convertir todos los ceros (dentro del numero original) a unos, y todos los unos a ceros. A este resultado se le suma uno

Ejemplo : 200 (10)


11001000 original
00110111 aplicando el complemento a dos
- - - - - - 1 sumándole 1 al resultado del complemento
_______
00111000 la representación negativa de 200 (10)


Para comprobar la operación, se realiza una suma binaria del numero original y el resultado del complemento a dos.


11001000 original 200 (10)
00110111 complemento a dos
_______
100000000 resultado

Note que el resultado no es de 8 bits sino de 9, y que siempre el bit mas significativo del resultado es 1. una regla muy importante a seguir es que si existe un desbordamiento sobre el bit mas significativo (entiéndase por desbordamiento el hecho que después de alguna operación esta resulte mas grande que el registro donde se opera), dicho bit debe ser ignorado.


Representacion de los datos en la PC

ASCII (American Standard Code for Information Interchange)
Hay 95 caracteres ASCII imprimibles, numerados del 32 al 126.

El código ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código Estadounidense Estándar para el Intercambio de Información), pronunciado generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.

El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.

ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 33 caracteres no imprimibles, de los cuales la mayoría son caracteres de control obsoletos que tienen efecto sobre como se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por el carácter espacio).

Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto.


Tabla ASCII, has cilc en la imagen para verla en grande



BCD

El BCD (el binario decimal codificado) es una forma directa asignada a un equivalente binario. Es posible asignar cargas a los bits binarios de acuerdo a sus posiciones. Las cargas en el código BCD son 8, 4, 2, 1.

Ejemplo:

Para representar el digito decimal 6 en código BCD sería:.

0110

Ya que 0 x 8 + 1 x 4 + 1 x 2 ÷ 0+1 = 6.



Modelo de operacion interna de una pc

Sigue pasos logicos
--ejecuta lo que se le indica en forma secuencial

partes primordiales
--cpu
registros internos realizacion de operaciones aritmeticas logicas sobre el contenido de la memoria

--memoria



ANALOGIA

IMAGINEMOS UN ARCHIVERO CON GAVETAS CADA GAVETA ESTA NUMERADA DEL 0 (CERO) EN ADELANTEY CONTIENEUNA HOJA DE PAPEL CON UN NUMERO ESCRITO
Y ADEMAS UNA MESA CON DOS CAJAS PARA GUARDAR PAPELES ENCIMA, UN BLOCK DE APUNTES Y UN LIBRODONDE ESTAN ESCRITAS TODAS LAS INSTRUCCIONES VALIDAS QUE PUEDEN REALIZARSE SOBRE EL ARCHIVERO


FORMATO BASICO PARA EL LENGUAJE ENSAMBLADOR

ACCION----DESTINO---FUENTE
EJEMPLO
1.- MOV AL,2
2.- ADD[170],AL
3.- MOV AL,3
4.- ADD[170],AL


PARA CREAR UN PROGRAMA EN ENSAMBLADOR SE DIVIDE EN 4 PARTES

-----EDITAR
-----ENSAMBLARLO
-----ENLAZARLO
-----CORREGIRLO,DEPURARLO



Presentacion Creada por:
Julio César Faviel
Christian Gonzales
Eduardo Kato
Enrique Maldonado

1 comentario:

chac mool dijo...

no se ve el texto