作品简介

《x86汇编语言》第二版有以下变化:

1.在书的前面添加基础性的内容,用来说明汇编语言的由来和必要性,说明汇编语言编程的特点,以期平滑自然地进入汇编语言主题;

2.原书中对指令系统及x86指令格式的描述过于简略,此版增补这部分内容;

3.读者普遍反映第14章太难太紧凑,此版将相关内容拆分,降低学习的难度;

4.整个保护模式部分以现在的观点来看,内容组织不够合理,予以重新组织,配书代码重新编写和组织;

5.原书中有模糊的错误的表述,此版予以更正。

李忠,主要出版著作《穿越计算机的迷雾》《x86汇编语言:从实模式到保护模式》《穿越计算机的迷雾(第2版)》《C语言非常道》等。

作品目录

  • 第2版前言
  • 第1版 前言
  • 第1部分 预备知识
  • 第1章 十六进制计数法
  • 1.1 二进制计数法回顾
  • 1.2 十六进制计数法
  • 1.3 使用Windows计算器方便你的学习过程
  • 本章习题
  • 第2章 计算机和汇编语言
  • 2.1 用电表示数字
  • 2.2 二进制加法机
  • 2.3 具有记忆功能的器件——寄存器
  • 2.4 带寄存器的加法机
  • 2.5 能做四则运算的机器
  • 2.6 机器指令
  • 2.7 内 存
  • 2.8 自动计算
  • 2.9 处理器
  • 2.10 汇编语言的诞生
  • 本章习题
  • 第3章 分段机制和逻辑地址
  • 3.1 寄存器和字长
  • 3.2 内存访问和字节序
  • 3.3 古老的INTEL 8086处理器
  • 本章习题
  • 第4章 汇编语言和汇编软件
  • 4.1 汇编语言程序
  • 4.2 NASM编译器
  • 4.3 配书文件包的下载和使用
  • 本章习题
  • 第2部分 实模式
  • 第5章 虚拟机的安装和使用
  • 5.1 计算机的启动过程
  • 5.2 创建和使用虚拟机
  • 第6章 编写主引导扇区代码
  • 6.1 本章代码清单
  • 6.2 欢迎来到主引导扇区
  • 6.3 注 释
  • 6.4 在屏幕上显示文字
  • 6.5 显示标号的汇编地址
  • 6.6 使程序进入无限循环状态
  • 6.7 完成并编译主引导扇区代码
  • 6.8 加载和运行主引导扇区代码
  • 6.9 程序的调试技术
  • 本章习题
  • 第7章 相同的功能,不同的代码
  • 7.1 代码清单7-1
  • 7.2 跳过非指令的数据区
  • 7.3 在数据声明中使用字面值
  • 7.4 段地址的初始化
  • 7.5 段之间的批量数据传送
  • 7.6 使用循环分解数位
  • 7.7 计算机中的负数
  • 7.8 数位的显示
  • 7.9 其他标志位和条件转移指令
  • 7.10 NASM编译器的$和
  • 7.11 观察运行结果
  • 7.12 本章程序的调试
  • 本章习题
  • 第8章 比高斯更快的计算
  • 8.1 从1加到100的故事
  • 8.2 代码清单8-1
  • 8.3 显示字符串
  • 8.4 计算1到100的累加和
  • 8.5 累加和各个数位的分解与显示
  • 8.6 程序的编译和运行
  • 8.7 8086处理器的寻址方式
  • 本章习题
  • 第9章 硬盘和显卡的访问与控制
  • 9.1 本章代码清单
  • 9.2 用户程序的结构
  • 9.3 加载程序(器)的工作流程
  • 9.4 用户程序的工作流程
  • 9.5 编译和运行程序并观察结果
  • 本章习题
  • 第3部分 保护模式
  • 第10章 中断和动态时钟显示
  • 10.1 外部硬件中断
  • 10.2 内部中断
  • 10.3 软中断
  • 本章习题
  • 第11章 32位x86处理器编程架构
  • 11.1 IA-32架构的基本执行环境
  • 11.2 现代处理器的结构和特点
  • 11.3 32位处理器的寻址方式
  • 第12章 进入保护模式
  • 12.1 代码清单12-1
  • 12.2 全局描述符表
  • 12.3 存储器的段描述符
  • 12.4 安装存储器的段描述符并加载GDTR
  • 12.5 关于第21条地址线A20的问题
  • 12.6 保护模式下的内存访问
  • 12.7 程序的运行和调试
  • 本章习题
  • 第13章 操作数和有效地址的尺寸
  • 13.1 代码清单13-1
  • 13.2 INTEL 80286处理器的16位保护模式
  • 13.3 指令的操作尺寸
  • 13.4 清空流水线并串行化处理器
  • 13.5 有效地址尺寸和内存访问
  • 13.6 一般指令在32位操作尺寸下的扩展
  • 本章习题
  • 第14章 存储器的保护
  • 14.1 代码清单14-1
  • 14.2 进入32位保护模式
  • 14.3 修改段寄存器时的保护
  • 14.4 地址变换时的保护
  • 14.5 使用别名访问代码段对字符排序
  • 14.6 程序的编译和运行
  • 本章习题
  • 第15章 程序的动态加载和执行
  • 15.1 本章代码清单
  • 15.2 内核的结构、功能和加载
  • 15.3 在内核中执行
  • 15.4 用户程序的加载和重定位
  • 15.5 执行用户程序
  • 15.6 代码的编译、运行和调试
  • 本章习题
  • 第16章 任务和特权级保护
  • 16.1 任务的隔离和特权级保护
  • 16.2 代码清单16-1
  • 16.3 内核程序的初始化
  • 16.4 加载用户程序并创建任务
  • 16.5 用户程序的执行
  • 本章习题
  • 第17章 协同式任务切换
  • 17.1 本章代码清单
  • 17.2 任务切换前的设置
  • 17.3 任务切换的方法
  • 17.4 用jmp指令发起任务切换的实例
  • 17.5 处理器在实施任务切换时的操作
  • 17.6 程序的编译和运行
  • 本章习题
  • 第18章 中断和异常的处理与抢占式多任务
  • 18.1 中断和异常
  • 18.2 本章代码清单
  • 18.3 内核的加载和初始化
  • 18.4 内核任务的创建
  • 18.5 用户任务的创建和执行
  • 18.6 程序的编译和执行
  • 本章习题
  • 第19章 分页机制和动态页面分配
  • 19.1 分页机制概述
  • 19.2 本章代码清单
  • 19.3 使内核在分页机制下工作
  • 19.4 创建内核任务
  • 19.5 用户任务的创建和切换
  • 19.6 程序的编译、执行和调试
  • 本章习题
  • 第20章 平坦内存模型和软件任务切换
  • 20.1 多段模型和平坦模型
  • 20.2 本章代码清单
  • 20.3 初始化系统并加载内核
  • 20.4 内核的初始化
  • 20.5 用户任务的创建
  • 20.6 软件任务切换
  • 20.7 内核任务的执行
  • 20.8 用户任务的执行
  • 本章习题
展开全部