x86汇编语言:从实模式到保护模式2013年1月由电子工业出版社出版发行,总共6000行的源代码,全方位地向读者展现汇编语言程序设计之美。尽管汇编语言也是一种计算机语言,但却是与众不同的,与它的同类们格格不入。处理器的工作是执行指令并获得结果,而为了驾驭处理器,汇编语言为每一种指令提供了简单好记,易于书写的符号化表示形式。李忠编著的x86汇编语言:从实模式到保护模式采用开源的NASM汇编语言编译器和VirtualBox虚拟机软件,以个人计算机广泛采用的Intel处理器为基础,详细讲解了Intel处理器的指令系统和工作模式,以大量的代码演示了16/32/64位软件的开发方法,介绍了处理器的16位实模式和32位保护模式,以及基本的指令系统。x86汇编语言:从实模式到保护模式是一本有趣的书,它没有把篇幅花在计算一些枯燥的数学题上。相反,它教你如何直接控制硬件,在不借助于BIOS、DOS、Windows、Linux或者任何其他软件支持的情况下来显示字符、读取硬盘数据、控制其他硬件等。x86汇编语言:从实模式到保护模式可作为大专院校相关专业学生和计算机编程爱好者的教程。

小编温馨提醒:这本书的内容比较多,要注意劳逸结合哦

目录:目 录

第1部分 预备知识

第1章 十六进制计数法3

1.1 二进制计数法回顾3

1.1.1 关于二进制计数法3

1.1.2 二进制到十进制的转换3

1.1.3 十进制到二进制的转换4

1.2 十六进制计数法4

1.2.1 十六进制计数法的原理4

1.2.2 十六进制到十进制的转换5

1.2.3 十进制到十六进制的转换6

1.3 为什么需要十六进制6

本章习题7

第2章 处理器、内存和指令8

2.1 最早的处理器8

2.2 寄存器和算术逻辑部件8

2.3 内存储器10

2.4 指令和指令集11

2.5 古老的Intel 8086处理器13

2.5.1 8086的通用寄存器13

2.5.2 程序的重定位难题14

2.5.3 内存分段机制17

2.5.4 8086的内存分段机制18

本章习题21

第3章 汇编语言和汇编软件22

3.1 汇编语言简介22

3.2 NASM编译器24

3.2.1 从网上下载NASM安装程序24

3.2.2 安装NASM编译器25

3.2.3 下载配书源码和工具26

3.2.4 用Nasmide体验代码的书写和编译过程28

3.2.5 用HexView观察编译后的机器代码29

本章习题30

第4章 虚拟机的安装和使用31

4.1 计算机的启动过程31

4.1.1 如何将编译好的程序提交给处理器31

4.1.2 计算机的加电和复位31

4.1.3 基本输入输出系统32

4.1.4 硬盘及其工作原理33

4.1.5 一切从主引导扇区开始35

4.2 创建和使用虚拟机35

4.2.1 别害怕,虚拟机是软件35

4.2.2 下载Oracle VM VirtualBox36

4.2.3 安装Oracle VM VirtualBox36

4.2.4 创建一台虚拟PC37

4.2.5 虚拟硬盘简介42

4.2.6 练习使用FixVhdWr工具向虚拟硬盘写数据43

第2部分 16位处理器下的实模式

第5章 编写主引导扇区代码49

5.1 欢迎来到主引导扇区49

5.2 注释49

5.3 在屏幕上显示文字50

5.3.1 显卡和显存50

5.3.2 初始化段寄存器52

5.3.3 显存的访问和ASCII代码53

5.3.4 显示字符55

5.4 显示标号的汇编地址56

5.4.1 标号56

5.4.2 如何显示十进制数字60

5.4.3 在程序中声明并初始化数据61

5.4.4 分解数的各个数位61

5.4.5 显示分解出来的各个数位65

5.5 使程序进入无限循环状态66

5.6 完成并编译主引导扇区代码67

5.6.1 主引导扇区有效标志67

5.6.2 代码的保存和编译68

5.7 加载和运行主引导扇区代码68

5.7.1 把编译后的指令写入主引导扇区68

5.7.2 启动虚拟机观察运行结果70

5.7.3 程序的调试70

本章习题71

第6章 相同的功能,不同的代码72

6.1 代码清单6-172

6.2 跳过非指令的数据区72

6.3 在数据声明中使用字面值72

6.4 段地址的初始化73

6.5 段之间的批量数据传送74

6.6 使用循环分解数位75

6.7 计算机中的负数77

6.7.1 无符号数和有符号数77

6.7.2 处理器视角中的数据类型80

6.8 数位的显示82

6.9 其他标志位和条件转移指令83

6.9.1 奇偶标志位PF83

6.9.2 进位标志CF83

6.9.3 溢出标志OF84

6.9.4 现有指令对标志位的影响84

6.9.5 条件转移指令85

6.10 NASM编译器的$和$$标记87

6.11 观察运行结果87

本章习题88

第7章 比高斯更快的计算89

7.1 从1加到100的故事89

7.2 代码清单7-189

7.3 显示字符串89

7.4 计算1到100的累加和90

7.5 累加和各个数位的分解与显示90

7.5.1 堆栈和堆栈段的初始化90

7.5.2 分解各个数位并压栈92

7.5.3 出栈并显示各个数位94

7.5.4 进一步认识堆栈95

7.6 程序的编译和运行96

7.7 8086处理器的寻址方式96

7.7.1 寄存器寻址96

7.7.2 立即寻址97

7.7.3 内存寻址97

本章习题101

第8章 硬盘和显卡的访问与控制102

8.1 本章代码清单102

8.1.1 本章意图102

8.1.2 代码清单8-1103

8.2 用户程序的结构103

8.2.1 分段、段的汇编地址和段内汇编地址103

8.2.2 用户程序头部106

8.3 加载程序(器)的工作流程109

8.3.1 初始化和决定加载位置109

8.3.2 准备加载用户程序110

8.3.3 外围设备及其接口111

8.3.4 I/O端口和端口访问112

8.3.5 通过硬盘控制器端口读扇区数据114

8.3.6 过程调用116

8.3.7 加载用户程序121

8.3.8 用户程序重定位122

8.3.9 将控制权交给用户程序126

8.3.10 8086处理器的无条件转移指令126

8.4 用户程序的工作流程128

8.4.1 初始化段寄存器和堆栈切换128

8.4.2 调用字符串显示例程129

8.4.3 过程的嵌套130

8.4.4 屏幕光标控制131

8.4.5 取当前光标位置131

8.4.6 处理回车和换行字符132

8.4.7 显示可打印字符133

8.4.8 滚动屏幕内容134

8.4.9 重置光标134

8.4.10 切换到另一个代码段中执行135

8.4.11 访问另一个数据段135

8.5 编译和运行程序并观察结果135

本章习题136

第9章 中断和动态时钟显示137

9.1 外部硬件中断137

9.1.1 非屏蔽中断138

9.1.2 可屏蔽中断138

9.1.3 实模式下的中断向量表140

9.1.4 实时时钟、CMOS RAM和BCD编码141

9.1.5 代码清单9-1145

9.1.6 初始化8259、RTC和中断向量表145

9.1.7 使处理器进入低功耗状态147

9.1.8 实时时钟中断的处理过程148

9.1.9 代码清单9-1的编译和运行150

9.2 内部中断150

9.3 软中断151

9.3.1 常用的BIOS中断151

9.3.2 代码清单9-2155

9.3.3 从键盘读字符并显示155

9.3.4 代码清单9-2的编译和运行155

本章习题156

第3部分 32位保护模式

第10章 32位Intel微处理器编程架构159

10.1 IA-32架构的基本执行环境164

10.1.1 寄存器的扩展162

10.1.2 基本的工作模式162

10.1.3 线性地址163

10.2 现代处理器的结构和特点164

10.2.1 流水线164

10.2.2 高速缓存165

10.2.3 乱序执行165

10.2.4 寄存器重命名166

10.2.5 分支目标预测167

10.3 32位模式的指令系统168

10.3.1 32位处理器的寻址方式168

10.3.2 操作数大小的指令前缀169

10.3.3 一般指令的扩展171

本章习题174

第11章 进入保护模式175

11.1 代码清单11-1175

11.2 全局描述符表175

11.3 存储器的段描述符177

11.4 安装存储器的段描述符并加载GDTR180

11.5 关于第21条地址线A20的问题182

11.6 保护模式下的内存访问184

11.7 清空流水线并串行化处理器188

11.8 保护模式下的堆栈189

11.8.1 关于堆栈段描述符中的界限值189

11.8.2 检验32位下的堆栈操作190

11.9 程序的编译和运行191

本章习题191

第12章 存储器的保护192

12.1 代码清单12-1192

12.2 进入32位保护模式192

12.2.1 话说mov ds,ax和mov ds,eax192

12.2.2 创建GDT并安装段描述符193

12.3 修改段寄存器时的保护195

12.4 地址变换时的保护197

12.4.1 代码段执行时的保护197

12.4.2 堆栈操作时的保护198

12.4.3 数据访问时的保护200

12.5 使用别名访问代码段对字符排序201

12.6 程序的编译和运行203

本章习题203

第13章 程序的动态加载和执行204

13.1 本章代码清单204

13.2 内核的结构、功能和加载205

13.2.1 内核的结构205

13.2.2 内核的加载206

13.2.3 安装内核的段描述符208

13.3 在内核中执行211

13.4 用户程序的加载和重定位213

13.4.1 用户程序的结构213

13.4.2 计算用户程序占用的扇区数215

13.4.3 简单的动态内存分配216

13.4.4 段的重定位和描述符的创建217

......

免责声明:来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。

禁用于商业用途!如果您喜欢《x86汇编语言:从实模式到保护模式》,请购买正版,谢谢合作。

爱学习,请到3322软件站查找资源自行下载!

使用说明:方法一:

1、下载并解压,得出pdf文件

2、如果打不开本文件,请务必在3322软件站选择一款阅读器下载

3、安装后,在打开解压得出的pdf文件

4、双击进行阅读

方法二:

1、在手机里下载3322软件站中的阅读器和百度网盘

2、直接将pdf传输到百度网盘

3、用阅读器打开即可阅读

下载地址

x86汇编语言-带书签pdf高清完整版

普通下载通道

请描述一下您遇到的错误,我们将用火箭般的速度修复

软件无法下载

下载后无法使用

与描述不一致

其他问题

网友评论

0条评论

评论需审核后才能显示

x86汇编语言从实模式百度云_x86汇编语言:从实模式到保护模式相关推荐

  1. x86汇编语言从实模式百度云_Intel x86 CPU 32位保护模式杂谈之任务切换 上

    目录: 什么是任务 任务由什么组成 任务门描述符是什么东东?有了TSS描述符为什么要有任务门描述符? 参考文献 什么是任务 任务(task)是处理器可以分配.执行.挂起的工作单位,笔者认为和我们操作系 ...

  2. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  3. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  4. X86汇编语言从实模式到保护模式11:指令格式及操作尺寸

    目录 1. 80286的16位保护模式 1.1 80286寄存器 1.2 80286段描述符 1.3 80286保护模式内存访问 2. 指令操作尺寸 2.1 指令操作尺寸的概念 2.2 16位处理器的 ...

  5. [书]x86汇编语言:从实模式到保护模式 -- 第17章 中断、任务切换、分页机制、平坦模型

    # 任务切换 内核任务.用户任务1.用户任务2,之前的轮询切换 利用RTC芯片的硬件中断来实现任务切换 计算机主板上有实时时钟芯片RTC,可以设置RTC芯片,使得它每次更新CMOS中的时间信息后,发出 ...

  6. [书]x86汇编语言:从实模式到保护模式 -- 第13章 mbr加载内核、内核加载应用程序

    # mbr加载内核 1.0x7c00,16位实模式 2.进入保护模式前的准备工作:创建段描述符(代码段.数据段.堆栈段.显示缓冲区),构建gdt 3.进入保护模式 ; 开启保护模式 ; CR0的第1位 ...

  7. [书]x86汇编语言:从实模式到保护模式 -- 第11章 进入保护模式,初识全局描述符表GDT; 第12章 别名,冒泡排序

    第11章 进入保护模式:初始化全局描述符表,通过GDT进入代码段.数据段.堆栈段 ; FILE: c11_mbr.asm ; DATE: 20191229 ; TITLE: 硬盘主引导扇区代码; 设置 ...

  8. 实模式、保护模式和虚拟8086模式

    参考自:实模式与保护模式解惑之(一)--二者的起源与区别(河西无名式) 概述:实模式和保护模式是处理器发展的两个非常重要的阶段.这两个模式下的编程也有着显著的不同,弄明实模式与保护模式的区别是理解操作 ...

  9. x86 - CPU架构/寄存器详解 (三) 保护模式

    系列文章 x86 - CPU架构/寄存器详解 (一)x86.8086.i386.IA-32 是什么? x86 - CPU架构/寄存器详解 (二) 实模式(8086模式) x86 - CPU架构/寄存器 ...

最新文章

  1. 计算机网络原理超详解说
  2. GT Transceiver的复位与初始化(4)RX初始化和复位流程
  3. LaTex 更改文字颜色
  4. SVM熟练到精通1:初识SVM
  5. 【转】Tomcat+MyEclipse
  6. java中的Sort函数,你值得看
  7. JAVA环境配置 ECLIPSE配置(转)
  8. 使用MyEclipse开发中的编码设置
  9. QT正则表达式截取字符串末尾数字
  10. 一些web缓存相关的概念.cache-control expires no-cache no-store maxage
  11. e5服务器系列天梯图,至强e5系列cpu天梯图_2020年5月至强e5天梯图排行
  12. 【2018将成为AGI元年】13名专家盘点2017最重要AI事件,预测AGI将取代AI
  13. Python 哥德巴赫猜想
  14. 如何批量将 pptx 格式的 PPT 演示文稿转换为 ppt 格式
  15. JAVA7新特性1---groovy
  16. 网络安全之KALI使用
  17. 如何成为一个更好的Android开发者?写给正在求职的安卓开发
  18. win10无线显示未连接到服务器,win10突然无法连接到无线显示器
  19. qgis编辑sld中文标注样式导入Geoserver中文字体乱码
  20. X86机器安装麒麟UOS双系统

热门文章

  1. 数据分析与数据挖掘的基础概念
  2. PDF加密、解密内幕(一)- (PDF加密字典对象分析)
  3. C#中的PerformanceCounter类
  4. 嵌套循环打印三角形 菱形 99乘法表
  5. 【Python】可迭代对象展开
  6. 在计算机组装中如何判断硬件的型号,电脑配置如何看?查看电脑配置好坏的方法 (值得收藏学习)...
  7. ICON图标怎么设计?新手要注意什么?
  8. VUE组件封装与使用原理
  9. Excel——在报表中实现隔行求和?隔两行求和?隔三行求和?...隔n行求和...
  10. BeanCopier类