PDF de programación - Lenguaje ensamblador 2009

Imágen de pdf Lenguaje ensamblador 2009

Lenguaje ensamblador 2009gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 9 de Enero del 2018)
6.963 visualizaciones desde el 9 de Enero del 2018
10,3 MB
774 paginas
Creado hace 14a (08/10/2009)
Ensamblador
Edición 2009

Francisco Cnarte Ojeda

Todos los nombres propios de programas, sistemas operativos,
equipos hardware, etc. que aparecen en este libro son marcas
registradas de sus respectivas compañías u organizaciones.

Reservados todos los derechos. El contenido de
esta obra está protegido por la Ley, que establece
penas de prisión y /o multas, además de las
correspondientes indemnizaciones por daños y
perjuicios, para quienes reprodujeren, plagiaren,
distribuyeren o comunicaren públicamente, en
todo o en parte, una obra literaria, artística o
científica, o su
interpretación
o ejecución artística fijada en cualquier tipo
de soporte o comunicada a través de cualquier
medio, sin la preceptiva autorización.

transformación,

© EDICIONES ANAYA MULTIMEDIA (GRUPO ANAYA, S.A.), 2009

Juan Ignacio Luca de Tena, 15. 28027 Madrid
Depósito legal: M. 49.604-2008
ISBN: 978-84-415-2511-5
Printed in Spain
Impreso en: Closas-Orcoyen, S. L.

Agradecimientos

Agradecimientos

La terminación de un nuevo libro, que sigue su camino hacia el lector, es siempre
una experiencia gratificante. En este caso esa sensación es, si cabe, aún mayor, dado que
el libro que ahora tiene en sus manos ha recorrido un largo camino y tiene una historia
de muchos años detrás.

Comencé a programar en ensamblador a mediados de la década de los 80 utilizando
un microordenador MSX, con un Z80 en su interior, y un ensamblador/desensambla(cid:173)
dor en formato de cartucho. Dos años después inicié la redacción de un libro sobre pro(cid:173)
gramación en ensamblador Z80 que, no mucho después, quedó detenido en favor de la
redacción de otros títulos.

Mi primer agradecimiento va dirigido a mis antiguos alumnos de los cursos de en(cid:173)

samblador 8086 en Centro de Estudios Informáticos (también a ti, querido Andrés) de Jaén,
en los años 89 y 90. Su entusiasmo por aprender, y la ilusión que ponían en el desarro(cid:173)
llo de cada proyecto, me llevó a reciclar aquel antiguo libro y convertirlo en un libro de
programación en ensamblador 8086 para DOS. Unas doscientas páginas, recogiendo la
formación de aquellos cursos, volvieron a quedar en el olvido cuando un año después
cambié de trabajo.

Dada la imposibilidad de finalizar y publicar aquel libro, sacié mis ganas de escri(cid:173)
bir sobre ensamblador publicando diversos artículos en la desaparecida revista RPP, a
cuyo director, Daniel Alonso, agradezco su apoyo siempre incondicional a mis ideas.
Me alegra que te vaya bien en tu nueva singladura y espero que nuestros caminos vuel(cid:173)
van a cruzarse algún día.

Terminando el siglo pasado mis editores de Anaya Multimedia me propusieron la ela(cid:173)
boración de un libro sobre programación en ensamblador. Obviamente acepté de inme(cid:173)
diato, era algo que llevaba esperando años. Me puse manos a la obra y comencé mi nuevo
libro pero, una vez más, quedó estancado al dar prioridad a otros proyectos (sí Visual
Studio .NET, tu tienes la culpa 8-D). Finalmente, en los últimos meses de 2002 pude de(cid:173)
dicarme a este libro y no podría haberlo hecho sin la confianza que siempre depositan
en mí personas como José María Mourelle o Víctor Manuel Ruiz. Gracias a ambos.

Cinco años después, en 2008, la aceptación que tuvo esa primera edición de Programación
en ensamblador para DOS, Linux y Windows llevó a mis editores a pedirme una actualiza(cid:173)
ción del título. Éste es el libro que tiene en sus manos, con ocho nuevos capítulos y la re(cid:173)
visión y corrección de los procedentes de la edición previa. Mi agradecimiento a todos
los lectores que han confiado en este trabajo y que, con su beneplácito, han propiciado
la aparición de esta segunda edición.

Aunque para redactar la primera edición de este libro rescaté parte del trabajo que
tenía esperando desde hacía una década, mi objetivo era actualizarlo para dar cabida a te(cid:173)
mas de actualidad que, por entonces, no había planteado tratar. Busqué las herramien(cid:173)
tas adecuadas para ello, parte de las cuales están incluidas en el CD-ROM que incluye el
libro. Mi agradecimiento a todas las personas que en su momento, en la primera edición
de este libro, me autorizaron a incluir su trabajo y, especialmente, a Javier Izquierdo, en(cid:173)
tonces en Microsoft Ibérica, por autorizar la inclusión de MASM y a Rob Anderton, autor
de NASM-IDE quien, a cambio del permiso para incluirlo con el libro, sólo me pidió un

Ensamblador. Edición 2009

ejemplar de éste. En cuanto lo recibió añadió un enlace en su sitio Web, indicando que
NASM-IDE había sido incluido en un libro que le pareció excelente. No deje de visitar
la Web deRob, e n h t t p: / / u k . g e o c i t i es . c o m / r o b _ a n d e r t o n /, para contar siem(cid:173)
pre con la última versión de NASM-IDE.

Como suele ocurrir en todos los proyectos, cuando se llega a la fecha límite, en este
caso la fecha de entrega del material, todo son prisas y hay que acabar cuanto antes.
Esto no sería posible sin el buen trabajo de Tomás Eisman (la persona que convierte mis
archivos de texto e imágenes en un libro), la ayuda de mi esposa, María Jesús Luque,
ocupándose de todas las tareas que habitualmente compartimos y, finalmente, la ale(cid:173)
gría que me aportan mis hijos, David y Alejandro. Gracias a todos, sin vosotros no es(cid:173)
taría escribiendo esto.

índice

de contenidos

Agradecimientos

Introducción

Microprocesadores
Sistemas hardware y sistemas operativos
Objetivos de este libro

1. Microprocesadores y sistemas basados en microprocesador

Del circuito integrado al microprocesador
Evolución de los microprocesadores

Fueron los primeros
Microprocesadores de 8 bits
Microprocesadores de 16 bits
CISC versus RISC
Microprocesadores modernos

Microprocesadores versus microcontroladores
Arquitectura común de una CPU
Arquitectura común de un sistema basado en microprocesador
Resumen

2. Representación de datos en ordenadores

Bases de numeración

Sistemas de numeración informáticos

6

22

24
25
25

28

30
31
31
32
33
34
35
36
37
41
43

44

46
46

flotante

Índice de contenidos

Cálculo del valor de una cifra
Conversión entre bases de numeración

Conversión a la base decimal desde cualquier base
Conversión a cualquier base desde la base decimal

Operar con números binarios

Bits, nibbles y bytes
Números con signo

Operar con números hexadecimales

De binario a hexadecimal y viceversa
Números negativos en hexadecimal

Números en base ocho
Identificación de la base de un número
Representación de números enteros

Big endian vs Little endian

Representación BCD
Representación de números en coma

Normalización de la mantisa
Codificación del exponente
Codificación del signo

Representación de caracteres y cadenas
Resumen

3. Arquitectura de la familia de microprocesadores x86

Estructura de bloques
Banco de registros

El registro de estado

Generaciónde direcciones

Patillaje del 8086

Buses de direcciones y datos
Modos de funcionamiento
Gestión de interrupciones

Los sucesores del 8086
Resumen

4. Sistemas basados en microprocesadores x86

Estructura de bloques
Generador de reloj - 8284
Controlador de bus - 8288
Reloj programable - 8253
Interfaz programable de periféricos - 8255
Controlador programable de interrupciones - 8259
Controlador de acceso directo a memoria - 8237
Resumen

48
49
49
50
50
51
52
54
54
56
56
56
57
58
60
60
61
63
63
64
65

66

67
69
71
73
74
74
76
77
77
79

80

81
83
84
85
89
92
94
96

5. Modos de direccionamiento

Direccionamiento por registro
Direccionamiento inmediato
Direccionamiento directo
Direccionamiento indirecto
Direccionamiento indexado
Registros de segmento por defecto
Modos de direccionamiento del 80386
Resumen

6. Conjunto de instrucciones

Instrucciones aritméticas
Instrucciones lógicas y de rotación/traslación
Instrucciones de conversión
Instrucciones de cadena
Instrucciones de transferencia de datos
Instrucciones de control de
Instrucciones de entrada/salida
Instrucciones de control
Otras instrucciones
Resumen

7. Herramientas necesarias

Editores
DOS
Windows
Linux

Ensambladores

MASM
NASM
Otros ensambladores
RAD y ensamblador

Enlazadores
Depuradores
Otras herramientas
Resumen

8. Nuestro primer programa

Esqueleto de un programa mínimo
Programas COM en DOS

El código
Ensamblado y enlace

índice de contenidos

flujo

98

99
100
102
103
104
105
106
106

108

110
111
111
112
112
113
115
116
116
117

118

119
121
123
124
125
126
128
130
130
130
132
133
133

136

137
138
138
140

Índice de contenidos

Programas EXE en DOS

Versión MASM
Versión NASM

Ensamblado y enlace

Programas Linux

El código
Ensamblado y enlace

Programas Windows

El código
Ensamblado y enlace

Resumen

9. Ejecución de un programa

,

Formatos de archivo ejecutable

Ejecutables en DOS
Ejecutables en Linux
Ejecutables en Windows
Detalles sobre formatos de archivo

Preparación del programa por parte del sistema

Recuperación de la cabecera del ejecutable
Asignación de bloques de memoria
Creación de un proceso
Configuración de registros

Segmentos de código, datos y pila
El puntero de instrucción
Base y puntero de la pila
Acceso a los datos

Resumen

10. Registros y memoria

Unidades de información

Palabras y dobles palabras
Múltiplos del byte

Capacidad de direccionamiento

Registros de segmento
Párrafos y seg
  • Links de descarga
http://lwp-l.com/pdf8259

Comentarios de: Lenguaje ensamblador 2009 (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