PDF de programación - Material Didáctico y Referencia del lenguaje Ensamblador

Imágen de pdf Material Didáctico y Referencia del lenguaje Ensamblador

Material Didáctico y Referencia del lenguaje Ensambladorgráfica de visualizaciones

Publicado el 18 de Octubre del 2020
646 visualizaciones desde el 18 de Octubre del 2020
421,5 KB
84 paginas
Creado hace 12a (01/10/2011)
Instituto Tecnológico de Veracruz

Material Didáctico y Referencia del

LENGUAJE ENSAMBLADOR

Elaborado por:

MSI. Genaro Méndez L.

Lenguaje Ensamblador
.

LENGUAJE ENSAMBLADOR.

Temario del Curso.

I. Arquitectura del procesador

1.1 Introducción
1.2 Importancia del Lenguaje ensamblador
1.3 Historia de los procesadores
1.4 Diagrama de bloques.

1.4.1 Descripción de componentes
1.4.2 Funcionamiento interno
1.5 Capacidad de direccionamiento
1.6 Modos de direccionamiento

1.6.1 Implícito.
1.6.2 Inmediato
1.6.3 Registro

- Directo
- Relativo
- Base Indexado
- Base relativo
1.7 Formato de instrucciones

II. Programación Básica

2.1 Formato de un programa.
2.2 Instrucciones de transferencia de datos.
2.3 Instrucciones aritméticas.
2.4 Instrucciones lógicas.
2.5 Manipulación de banderas.
2.6 Saltos

2.6.1 Incondicional
2.7.1 Condicional

2.7 Ciclos
2.8 Comparación
2.9 Alto y no operación (Hlt, Nop)
2.10 Rotación y desplazamiento.
2.11 Directivas.

III. Programación Modular

3.1 Definición de rutinas.
3.2 Pase de parámetros.
3.3 Rutinas internas.
3.4 Rutinas externas.

IV. Programación E/S
4.1 Definición
4.2 Forma en que se ejecuta una interrupción
4.3 Interrupciones.
4.3.1. BIOS
4.3.2. S.O.

II

Lenguaje Ensamblador
.

V. Macros

5.1 Definición
5.2 Parámetros y etiquetas.
5.3 Ensamble de macros
5.4 Ventajas y desventajas.

VI. Manejo de cadenas.

6.1 Definición
6.2 Almacenamiento
6.3 Instrucciones de manipulación
6.4 Interrupciones para cadenas.

Unidades de Aprendizaje.

UNIDAD I. Conocerá los elementos arquitectónicos del procesador a utilizar, así como las diferentes
formas de acceso a los datos dentro de la computadora.

UNIDAD II. Conocerá el formato de un programa escrito en lenguaje ensamblador y sus
instrucciones para aplicarlos en la elaboración de programas.

- Desarrollo de programas en lenguaje ensamblador

UNIDAD III. Conocerá y aplicará el uso de rutinas tanto internas como externas y las distintas
formas de llevar a cabo el pase de parámetros.

- Realizar programas utilizando modularidad.

UNIDAD IV. Conocerá los métodos de comunicación con los dispositivos de E/S y la
aplicará en la elaboración de programas.

- Desarrollar programas aplicando las instrucciones e interrupciones para entrada,
salida.



III

Lenguaje Ensamblador
.

Referencias Bibliográficas.

1. Microcomputer systems: The Intel familly, architecture,
programming and design.
YU CHENG LIU, GLEN A. GIBSON
MC GRAW HILL

2. Programming the Intel 80386.
BUD E. SMITH, MARK JOHNSON
IBM BOOK

3. ASSEMBLY LANGUAJE AND SYSTEMS PROGRAMMING
FOR TEH IBM-PC AND COMPATIBLES
KAREN A. LEMONE
MAC MILLAN

4. THE 8086 BOOK
RECTOR, RUSSELL
OSBORNE-MC. GRAW HILL

5. 80386 ARCHITECTURE AND PROGRAMMING INCLUDING 80387
NUMERIC CO-PROCESSOR
TRIO, JEAN-MICHELL
MAC MILLAN

6. IBM PC ASSEMBLY LANGUAJE
A GUIDE FOR PROGRAMMING
LEO J, SCANLON
PRENTICE HALL

7. MACROASSEMBLER 6
FOR THE MS-DOS OPERATING SYSTEM
- PROGRAMMERS GUIDE
-MICROSOFT CODE VIEW A UTILITIES UP DATE
EDITOR MICROSOFT CORP.

8. INTRODUCCION AL 8086/8088
CRISTOPHER L. MORGAN, MICHELL W.
MC GRAW HILL

9. THE VISIBLE COMPUTER 8088 ASSEMBLY LANGUAJE
TEACHING SYSTEM
IBM PC.

10. PETER NORTON UNDER PC ASSEMBLY LANGUAJE

IV

I. Introducción.

La forma específica y juego de instrucciones de cada ensamblador existente, depende
directamente de la arquitectura del microprocesador y componentes de la computadora para el
cual se haya realizado.

La primera computadora personal, lanzada por IBM, fue la IBM-PC. Basada en el
microprocesador Intel 8088. Su éxito, popularidad y hoy en día, la forma más accesible de
incursionar en él ambiente de las computadoras personales y de toda la familia que de ésta se
originó, nos es posible que en base a éste modelo, podamos emprender a una excursión al
lenguaje ensamblador.

El concepto básico y comportamiento de los demás ensambladores es algo similar, y
entendiendo uno será más fácil aprender los demás, ya que mucho del conocimiento que se tenga,
también es directamente proporcional al conocimiento de la forma en como las computadoras
realizan sus tareas. Esto es, si en las computadoras PC, se sabe que se cuenta con algún
dispositivo especifico para resolver alguna tarea, es posible que en otra arquitectura de otra
computadora se encuentre alguno similar con más, o menos opciones.

Aún cuando parezca que las computadoras "entienden" lenguajes de alto nivel como BASIC
o Pascal, todas las computadoras corren actualmente en lenguaje máquina, los bytes codificados
que dirigen la unidad central de proceso de la computadora. Por esta razón código máquina es un
mejor término que lenguaje de computadora de bajo nivel- el único lenguaje que la computadora
conoce. Ya que el CPU de la computadora no puede ejecutar directamente las sentencias de C y
Pascal, los programas en éstos y otros lenguajes de alto nivel deben de ser compilados
(traducidos) a código máquina antes para que los programas puedan ser utilizados. Similarmente,
un programa escrito en un lenguaje intérprete como BASIC o LISP deben de ser traducidos a
código máquina, aunque en estos casos, la traducción sucede invisiblemente mientras el programa
se ejecuta, normalmente una sentencia a la vez.
Los programas de lenguaje ensamblador también deben de ser traducidos a código máquina por
un programa llamado ensamblador.
No igual que las sentencias de C o Pascal, las cuales se pueden traducir a docenas de bytes de
código máquina, las instrucciones de lenguaje ensamblador están directamente relacionadas con
códigos de maquina individuales - la mayor distinción entre los lenguajes de alto nivel y los
ensambladores. Todos los lenguajes tienen sus puntos a favor, pero solamente el lenguaje
ensamblador permite escribir programas directamente en el grupo de instrucciones indivisibles del
CPU.
Un poco de Historia.
Las computadoras IBM-PC, llegaron a revolucionar el mundo de las computadoras personales, a la
vez que se iniciaba una nueva generación de chips procesadores de 16 bits. Fueron ingenios más
grandes y poderosos, destinados a reemplazar o completar a las microcomputadoras de 8 bits de
los años 70's, que fueron las que comenzaron la revolución de las microcomputadoras.
Con los procesadores de 8 bits se podían representar hasta 255 números, mientras que a partir
de los procesadores de 16 bits, este número se incremento hasta 65535, un número 256 veces
mayor; así sucesivamente cada vez que se libera una nueva generación dentro de la misma
familia, el numero capaz de representar continúa en aumento, llegando en la actualidad a manejar
números de 64 bits con direccionamientos de hasta 1.844674407371e+019.
La fórmula para obtener el valor máximo de direccionamiento de un procesador es 2n, donde n
es el numero de bits del procesador.


Es importante resaltar que los micorprocesadores INTEL de la familia 80X86 todavía utilizan un
juego de instrucciones orientado a octetos (bytes);, esto es, que cada instrucción en lenguaje
máquina de los procesadores ocupa de 1 a 6 octetos de memoria. En el caso de los

microprocesadores de 16 bits, estos pueden cargar dos instrucciones en un tiempo de reloj. El
hecho de especificar el numero de bits de un microprocesador, también se refiere al numero de
bits que puede tratar en forma simultánea, tanto para enviarlos, recibirlos o procesarlos.
Arquitectura Básica de los microprocesadores INTEL de la familia 80X86
Los microprocesadores 8088, 8086, 80186, 80286, 80386, 80486 y ahora Pentium, son los que
conforman la familia 80X86 de INTEL. Esta familia, desde el 8088, fue una extensión lógica del
popular 8080. Internamente el 8080 y el 8088 son iguales, pero el 8088 está diseñado para
trabajar con un bus de 8 bits, siendo de ésta manera compatible con la mayoría de los buses del
mismo tamaño. El 8086, se conecta a un bus de 16 bits. El 6 del 86 indica el bus de 16 bits; el 8 de
88 significa que el bus en éste caso es de 8 bits. Ambos se refieren a la anchura física del bus de
datos. Internamente ambos poseen el mismo juego de instrucciones y el mismo tamaño de datos.
El 8088 y 8086, utilizan el concepto de colas de instrucciones para aumentar la velocidad de
proceso. Dentro del propio chip existe una área a la que se le llama cola de instrucciones, que
guarda los octetos (bytes) de las instrucciones. Cuando la computadora está preparada para
obtener la siguiente instrucción, no es necesario tomarla de memoria. De ésta forma el bus de
datos y de direcciones no presentan periodos pico de utilización como es común en los buses de
datos de 8 bits, que necesitan continuamente de accesar a la memoria.
La cola de instrucciones del 8086 es de 6 bytes, y la del 8088 de 4.
El 8086 puede acceder a 1 Mbyte de memoria de lectura/escritura 220. Sin embargo, utiliza un
esquema de direccionamiento de memoria llamado de segmentación, en el cual ciertos registros
de segmentación suministran una dirección base, que se añade automáticamente a cada dirección
de 16 bits que define el usuario. Aunque hay cuatro registros de segmentación en el 8086, la
dirección base posible puede emplazarse a intervalos de 16 bytes a lo largo de todo el Megabyte
de memoria direccionable.
Parte de la dirección y todo el bus de datos están multiplexados en 16 terminales. Los 4 bits de
dirección restantes se corresponden con los 4 terminales de dirección adicionales que también se
utilizan para el estado. Se requiere de un reloj externo y un controlador de bus también externo
que se utiliza para demultiplexar el bus de direcciones/datos.

El microprocesador 8080 tenia solo tres registros pares de propósito general, HL, BC y DE. Con el
8088 se renombraron y aumentaron y reciben los nombr
  • Links de descarga
http://lwp-l.com/pdf18376

Comentarios de: Material Didáctico y Referencia del lenguaje Ensamblador (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad