PDF de programación - Programación en Ensamblador para procesadores 80x86

Imágen de pdf Programación en Ensamblador para procesadores 80x86

Programación en Ensamblador para procesadores 80x86gráfica de visualizaciones

Actualizado el 9 de Febrero del 2020 (Publicado el 17 de Marzo del 2018)
1.386 visualizaciones desde el 17 de Marzo del 2018
346,5 KB
70 paginas
Creado hace 16a (16/04/2008)
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÀN
INGENIERÍA EN SISTEMAS COMPUTACIONALES


SEMINARIO DE DESARROLLO DE PROYECTOS DE INVESTIGACIÓN

ASIGNATURA:

PROGRAMACIÓN EN
ENSAMBLADOR PARA
PROCESADORES 80x86

ISC. JUAN ALBERTO ANTONIO VELÁZQUEZ

DOCENTE:

PRESENTA:

ALVA HILARIO GUSTAVO
BECERRIL LÓPEZ NANCY
CRUZ MATIAS DEISY
GONZALEZ MALDONADO MARTHA YARELI
ROMERO ORTEGA FRANCISCO JAVIER
SANCHEZ CRUZ GUSTAVO
GRUPO:ISC-801
JOCOTITLÁN MÉXICO, 15 DE ABRIL DE 2008.

INDICE

I.-CONCEPTOS BASICOS

LENGUAJE MAQUINA Y ENSAMBLADOR

INTERPRETES COMPILADORES Y ENSAMBLADORES

PROCESO DE LIGA, RUTINAS RUN-TIME Y SERVICIOS DE S.O

ARQUITECTURAS DE LOS MICROPROCESADORES

SISTEMA OPERATIVO MS-DOS

ENSAMBLADORES Y MACROENSAMBLADORES

II.-LENGUAJE ENSAMBLADOR

IMPORTANCIA DEL LENGUAJE ENSAMBLADOR

VENTAJAS Y DESVENTAJAS

FORMATO DEL ENSAMBLADOR

DIRECTIVAS

CONJUNTO DE INSTRUCCIONES

MACROS Y PROCEDIMIENTOS

INTERRUPCIONES

III.-CREACIÓN Y DEPURACIÓN DE PROGRAMAS EN LENGUAJE
ENSAMBLADOR

EDICIÓN

ENSAMBLADO

LINK

EJECUCIÓN

DEPURACIÓN

UTILERIA EXE2BIN Y ARCHIVOS .EXE y .COM

6

6

7

7

8

16

17

18

18

18

20

21

23

26

28

28

28

29

30

30

31

31

IV.-PROGRAMACIÓN EN ENSAMBLADOR

PROGRAMACIÓN BASICA

FORMATOS DE INSTRUCCIONES

FORMATO DE UN PROGRAMA

PROCESO DE ENSAMBLE Y LIGADO DE UN PROGRAMA

INSTRUCCIONES DE TRANSFERENCIA DE DATOS

INSTRUCCIONES ARITMÉTICAS

INSTRUCCIONES PARA LA MANIPULACIÓN DE BANDERAS

INSTRUCCIONES DE SALTO

INSTRUCCIONES PARA CICLOS

INSTRUCCIONES LÓGICAS

INSTRUCCIONES DE ROTACIÓN Y DESPLAZAMIENTO

INSTRUCCIONES PARA LA PILA

MANIPULACIÓN DE CADENAS

INSTRUCCIONES PARA EL MANEJO DE STRINGS

PROGRAMACIÓN DE ENTRADA Y SALIDA

INERRUPCIONES DE SOFTWARE Y HARDWARE

INTERRUPCIONES DEL BIOS

INTERRUPCIONES DEL DOS

MACROS

PARÁMETROS Y ETIQUETAS

PROGRAMACIÓN MODULAR

PROCEDIMIENTOS

PASO DE PARÁMETROS

PROGRAMACIÓN HÍBRIDA

PASCAL Y ENSAMBLADOR

32

32

32

33

33

34

36

39

41

44

45

46

48

49

50

52

53

54

54

55

56

60

60

61

64

64

INTRODUCCION.

El presente trabajo, está enfocado al lenguaje ensamblador de los procesadores 8088,
8086, 80186, 80188 y 80286, asi como todo lo necesario para programar en lenguaje
ensamblador y todas las herramientas que nos proporciona este para realizar programas.
Este documento trata de abarcar, de la forma más general, todo aquello que involucra el
conocimiento y uso del lenguaje ensamblador.
Ha sido organizado en CUATRO partes importantes que describen detalladamente
aspectos relevantes a considerar para el uso de lenguaje ensamblador.
La primera describe los conocimientos básicos que deben poseerse para una mejor
comprensión e interpretación de lo que es el lenguaje ensamblador y cómo debe ser
usado.
La segunda parte presenta una breve descripción de lo que es el lenguaje ensamblador,
ventajas y desventajas de este, instrucciones generales, todo lo que nos proporciona el
lenguaje ensamblador.
En el tercer apartado se mencionan los pasos para la creación y depuración ade un
programa en lenguaje ensamblador.
En la última parte se explican los tipos de programación en lenguaje ensamblador asi
como todas las instrucciones interrupciones, parámetros, procedimientos en cada uno de
ellos. .

OBJETIVOS

(cid:183) Proporcionar información a la comunidad estudiantil que les sirva de apoyo
didáctico en la elaboración de investigaciones, realización de practicas y
exposición de proyectos en las distintas areas de conocimiento.
(cid:183) Presentar un proyecto de calidad en la materia de SEMINARIO DE
DESARROLLO DE PROYECTOS DE INVESTIGACION EN EL TECNOLOGICO
DE ESTUDIOS SUPERIORES DE JOCOTITLAN.

I.-CONCEPTOS BASICOS.
EL LENGUAJE DE MAQUINA Y EL LENGUAJE ENSAMBLADOR.

Todo procesador, grande o pequeño, desde el de una calculadora hasta el de un
supercomputador, ya sea de propósito general o específico, posee un lenguaje único que
es capaz de reconocer y ejecutar. Por razones que resultan obvias, este lenguaje ha sido
denominado Lenguaje de Máquina y más que ser propio de un computador pertenece a su
microprocesador. El lenguaje de máquina está compuesto por una serie de instrucciones,
que son las únicas que pueden ser reconocidas y ejecutadas por el microprocesador. Este
lenguaje es un conjunto de números que representan las operaciones que realiza el
microprocesador a través de su circuitería interna. Estas instrucciones, por decirlo así,
están grabadas o "alambradas" en el hardware y no pueden ser cambiadas. El nivel más
bajo al que podemos aspirar a llegar en el control de un microprocesador es precisamente
el del lenguaje de máquina.
Ahora bien, siendo el lenguaje de máquina un conjunto de números, ¿cómo es
capaz el microprocesador de saber cuándo un número representa una instrucción y
cuándo un dato? El secreto de esto reside en la dirección de inicio de un programa y en el
estado del microprocesador. La dirección de inicio nos indica en qué localidad de
memoria comienza un programa, y en consecuencia que datos deberemos considerar
como instrucciones. El estado del microprocesador nos permite saber cuándo éste espera
una instrucción y cuándo éste espera un dato.
Obviamente, el lenguaje de máquina de un microprocesador no puede ser
ejecutado por otro microprocesador de arquitectura distinta, a menos que haya cierto tipo
de compatibilidad prevista. Por ejemplo, un 80486 es capaz de ejecutar lenguaje de
máquina propio y soporta el código generado para microprocesadores anteriores de la
misma serie (desde un 8086 hasta un 80386). Por otra parte, un PowerPC es capaz de
ejecutar instrucciones de los microprocesadores Motorola 68xxx y de los Intel
80xx/80x86. En ambos casos, el diseño de los microprocesadores se hizo tratando de
mantener cierto nivel de compatibilidad con los desarrollados anteriormente. En el
segundo caso, este nivel de compatibilidad se extendió a los de otra marca. Sin embargo,
un 8088 no puede ejecutar código de un 80186 o superiores, ya que los procesadores más
avanzados poseen juegos de instrucciones y registros nuevos no contenidos por un 8088.
Un caso similar es la serie 68xxx, pero de ninguna manera podemos esperar que
un Intel ejecute código de un Motorola y viceversa. Y esto no tiene nada que ver con la
compañía, ya que Intel desarrolla otros tipos de microprocesadores como el 80860 y el
iWARP, los cuales no pueden compartir código ni entre ellos ni entre los 80xx/80xxx.
Ahora bien, mientras que con el lenguaje de máquina, nosotros obtenemos un
control total del microprocesador, la programación en este lenguaje resulta muy difícil y
fácil para cometer errores. No tanto por el hecho de que las instrucciones son sólo
números, sino porque se debe calcular y trabajar con las direcciones de memoria de los
datos, los saltos y las direcciones de llamadas a subrutinas, además de que para poder

este

lenguaje proporciona un

INTERPRETES, COMPILADORES Y ENSAMBLADORES.

hacer ejecutable un programa, se deben enlazar las rutinas de run-time y servicios del
sistema operativo.
Este proceso es al que se le denomina ensamblado de código. Para facilitar la
elaboración de programas a este nivel, se desarrollaron los Ensambladores y el Lenguaje
Ensamblador.
Existe una correspondencia 1 a 1 entre las instrucciones del lenguaje de máquina y
las del lenguaje ensamblador. Cada uno de los valores numéricos del lenguaje de máquina
tiene una representación simbólica de 3 a 5 letras como instrucción del lenguaje
ensamblador. Adicionalmente,
conjunto de
pseudo-operaciones (tambien conocidas como directivas del ensamblador) que sirven
para definir datos, rutinas y todo tipo de información para que el programa ejecutable sea
creado de determinada forma y en determinado lugar.
Aun cuando el lenguaje ensamblador fue diseñado para hacer más fácil la
programación de bajo nivel, esta resulta todavía complicada y muy laboriosa. Por tal
motivo se desarrollaron los lenguajes de alto nivel, para facilitar la programación de los
computadores, minimizando la cantidad de instrucciones a especificar. Sin embargo, esto
no quiere decir que el microprocesador ejecute dichos lenguajes. Cada una de las
instrucciones de un lenguaje de alto nivel o de un nivel intermedio, equivalen a varias de
lenguaje máquina o lenguaje ensamblador.
La traducción de las instrucciones de nivel superior a las de bajo nivel la realizan
determinados programas. Por una parte tenemos los interpretes, como DBase, BASIC, APL,
y Lisp. En estos, cada vez que se encuentra una instrucción, se llama una determinada
rutina de lenguaje de máquina que se encarga de realizar las operaciones asociadas, pero
en ningún momento se genera un código objeto y mucho menos un código ejecutable.
Por otra parte, tenemos los compiladores, como los desarrollados para Fortran, Clipper,
COBOL, Pascal o C, que en vez de llamar y ejecutar una rutina en lenguaje de máquina,
éstos juntan esas rutinas para formar el código objeto que, después de enlazar las rutinas
de run-time y llamadas a otros programas y servicios del sistema operativo, se
transformará en el programa ejecutable.
Finalmente, tenemos los ensambladores— como los descritos en este trabajo
—que son como una versión reducida y elemental de un compilador (pero que de ninguna
manera deben considerarse como tales), ya que lo único que tienen que hacer es cambiar
toda referencia simbólica por la dirección correspondiente, calcular los saltos, resolver
referencias y llamadas a otros programas, y realizar el proceso de enlace. Los
ensambladores son programas destinados a realizar el ensamblado de un determinado
código.
Para crear un programa ejecutable a partir de un código objeto se require que se
resulevan las l
  • Links de descarga
http://lwp-l.com/pdf9612

Comentarios de: Programación en Ensamblador para procesadores 80x86 (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