BELTRÁN DE HEREDIA, JON
Prólogo
Introducción
Cómo usar este libro
1. Sistemas de numeración
1.1. Introducción
1.2. Los diferentes sistemas de numeración
1.3. El sistema binario
1.4. El sistema octal
1.5. El sistema hexadecimal
1.6. Notación en las diferentes bases
1.7. Aritmética binaria y álgebra de Boole
1.8. TerminologÃa habitual
1.9. Números negativos: Aritmética del complemento a dos
2. Arquitectura de los ordenadores
2.1. Introducción
2.2. Estructura básica de un ordenador
2.3. Sistemas basados en 80x86: La segmentación
2.4. El interior de los 80x86
2.5. La memoria ROM
3. Primeros pasos: La instrucción MOV
3.1. Introducción
3.2. Movimiento de datos
4. Aritmética y lógica
4.1. Introducción
4.2. Las instrucciones INC y DEC
4.3. Las instrucciones ADD y SUB
4.4. La instrucción NEG
4.5. La instrucción NOT
4.6. Las instrucciones AND, OR Y XOR
4.7. Las instrucciones de multiplicación y división
4.7.1. Multiplicación de dos números de 8 bits, resultado de 16 Bits
4.7.2. Multiplicación de dos números de 16 bits, resultado de 32 bits
4.7.3. División de un número de 16 bits entre otro de 8 bits, cociente y resto de 8 bits
4.7.4. División de un número de 32 bits entre otro de 16 bits, cociente y resto de 16 bits
4.8. Operandos de distinto tamaño
5. Los flags: instrucciones de comparación
5.1. Introducción
5.2. El registro de flags
5.3. La limitación del número de bits: el flag de acarreo
5.4. El flag de signo
5.5. Operar con números con signo: el flag de desbordamiento
5.6. El flag de cero
5.7. El flag de paridad
5.8. Otros flags
5.9. Uso del flag de acarreo para operar con números muy grandes
5.10. Comprobaciones
6. Instrucciones de salto
6.1. Introducción
6.2. Tipos de saltos
6.3. Salto incondicional: la instrucción JMP
6.4. Saltos condicionales
6.5. Comparaciones y saltos
7. La pila: subrutinas
7.1. Introducción
7.2. Estructuras de datos: la pila
7.3. La pila de los 80x86
7.4. Empleo de la pila
7.5. El operando de RET
8. Las Interrupciones
8.1. Introducción
8.2. Las interrupciones hardware
8.3. Las interrupciones software
9. Miscelánea
9.1. Introducción
9.2. Acceso a puertos de E/S
9.3. Intercambio de valores
9.4. La instrucción NOP
9.5. La instrucción LEA
9.6. Carga de punteros largos: LDS y LES
9.7. Rotaciones y desplazamientos
9.8. Instrucciones de cadena
10. El estándar PC: La BIOS y el MS-DOS
10.1. Introducción
10.2. Estructura general de un PC
10.3. La ROM BIOS
10.4. El sistema operativo MS-DOS
10.5. El shell del MS-DOS
10.6. Información sobre las funciones BIOS y los servicios MS-DOS
10.7. El mapa de memoria de un PC
11. Ejecución de programas y entorno de desarrollo
11.1. Introducción
11.2. Los programas en tiempo de ejecución
11.3. Entorno de desarrollo
11.4. Formas de un programa en lenguaje ensamblador
11.5. Sintaxis del lenguaje ensamblador estándar
11.6. Empleo de etiquetas
11.7. Ejecutables de tipo COM
11.8. Directivas simplificadas de segmento
11.9. Convenciones
12. Entrada y salida
12.1. Introducción
12.2. Salida
12.2.1. Salida a través del MS-DOS
12.2.2. Salida a través dé la BIOS
12.3. Entrada
12.3.1. Entrada a través del MS-DOS
12.3.2. Entrada a través de la BIOS
12.4. Entrada y salida directas al hardware
13. Gestión de ficheros
13.1. Introducción
13.2. Proceso de los accesos a disco a través del MS-DOS
13.3. Métodos de acceso a disco a través del MS-DOS
13.4. Servicios básicos de acceso a disco
13.5. Servicios avanzados de acceso a disco
14. Gestión de memoria
14.1. Introducción
14.2. Organización de la memoria bajo MS-DOS
14.3. Servicios de gestión de memoria
15. Interfaz con lenguajes de alto nivel
15.1. Introducción
15.2. Referencias entre módulos
15.3. Modelos de memoria y convenciones de llamada
15.4. Interfaz con Turbo Pascal
15.5. Interfaz con lenguaje C
15.6. Interfaz con C++
16. Programación avanzada
16.1. Introducción
16.2. Acceso a los argumentos de lÃnea de comandos
16.3. Gestión de IRQs
16.4. Programas residentes
16.5. Optimización de código
16.6. Procesadores avanzados
Apéndice A. Juego de instrucciones de los 80x86
A.l. Introducción
A.2. Descripción de las instrucciones
A.3. Datos BCD
A.4. Juego de instrucciones
Apéndice B. El registro de flags. Efecto de las instrucciones sobre éstos
B.l. Introducción
B.2. El registro de flags
B.2.1. El flag de desbordamiento
B.2.2. El flag de dirección
B.2.3. El flag de interrupción
B.2.4. El flag de trampa
B.2.5. El flag de signo
B.2.6. El flag de cero
B.2.7. El flag de acarreo auxiliar
B.2.8. El flag de paridad
B.2.9. El flag de acarreo
B.3. Efecto de las instrucciones sobre los flags
Apéndice C. El programa DEBUG
C.l. Introducción
C.2. FilosofÃa de DEBUG
C.3. Empleo básico de DEBUG
C.4. Depuración con DEBUG
C.5. Funcionamiento de DEBUG
Ãndice alfabético