联系

网易云课堂 x86汇编语言:从实模式到保护模式

内容简介

《x86汇编语言:从实模式到保护模式》主要讲述INTEL x86处理器的16位实模式、32位保护模式,至于虚拟8086模式,则是为了兼容传统的8086程序,现在看来已经完全过时,不再进行讲述。《x86汇编语言:从实模式到保护模式》的特色之一是提供了大量典型的源代码,这些代码以及相配套的工具程序可以到书中指定的网站,或者电子工业出版社华信教育资源网搜索下载。

每一种处理器都有它自己的机器指令集,而汇编语言的发明则是为了方便这些机器指令的记忆和书写。尽管汇编语言已经较少用于大型软件程序的开发,但从学习者的角度来看,要想真正理解计算机的工作原理,掌握它内部的运行机制,学习汇编语言是必不可少的。本书采用开源的NASM汇编语言编译器和VirtualBox虚拟机软件,以个人计算机广泛采用的Intel处理器为基础,详细讲解了Intel处理器的指令系统和工作模式,以大量的代码演示了16/32/64位软件的开发方法,介绍了处理器的16位实模式和32位保护模式,以及基本的指令系统。这是一本有趣的书,它没有把篇幅花在计算一些枯燥的数学题上。相反,它教你如何直接控制硬件,在不借助于BIOS、DOS、Windows、Linux或者任何其他软件支持的情况下来显示字符、读取硬盘数据、控制其他硬件等。本书可作为大专院校相关专业学生和计算机编程爱好者的教程。

网易云课堂 x86汇编语言:从实模式到保护模式

资源目录

——/计算机教程/10网易云课堂/046-x86汇编语言:从实模式到保护模式/

{01}课程说明

[1.1]课程说明.mp4 51.62M

{02}汇编语言的前世今生

[2.10]处理器.mp4 19.65M

[2.11]汇编语言的诞生.mp4 20.71M

[2.1]引子.mp4 7.19M

[2.2]用电来表示数字.mp4 10.88M

[2.3]二进制加法机.mp4 8.86M

[2.4]具有记忆功能的器件——寄存器.mp4 13.06M

[2.5]带寄存器的加法机.mp4 8.44M

[2.6]能做四则运算的机器.mp4 13.09M

[2.7]机器指令.mp4 43.36M

[2.8]内存.mp4 40.06M

[2.9]自动计算.mp4 30.04M

{03}认识8086处理器

[3.1]8086的通用寄存器.mp4 23.15M

[3.2]8086的内存访问和字节序.mp4 12.85M

[3.3]程序的分段.mp4 11.24M

[3.4]程序的重定位难题.mp4 14.17M

[3.5]段地址和偏移地址.mp4 13.09M

[3.6]8086内存访问的困境.mp4 8.19M

[3.7]8086选择段地址的策略.mp4 21.66M

[3.8]8086的内存访问过程.mp4 13.82M

[3.9]逻辑地址和分段的灵活性.mp4 25.43M

{04}原书第1版第2章检测点和习题解析

[4.1]原书第1版第2章检测点和习题解析.mp4 22.29M

{05}汇编语言和汇编软件

[5.1]创建汇编语言源程序.mp4 23.11M

[5.2]Notepad++的下载和使用.mp4 23.37M

[5.3]下载和安装编译器NASM.mp4 17.45M

[5.4]编译汇编语言源程序.mp4 32.23M

[5.5]下载和使用配套源码及工具.mp4 50.67M

[5.6]将编译功能集成到Notepad++.mp4 18.63M

{06}原书第1版第3章检测点和习题解析

[6.1]原书第1版第3章检测点和习题解析.mp4 13.70M

{07}如何执行编译好的程序

[7.1]8086加电或者复位时的状态.mp4 24.52M

[7.2]8086地址空间的分配.mp4 32.36M

[7.3]跳转指令.mp4 16.69M

[7.4]硬盘的构造和工作原理.mp4 23.18M

[7.5]一切从主引导扇区开始.mp4 22.70M

{08}虚拟机的安装和使用

[8.1]安装VirtualBox虚拟机管理器.mp4 31.70M

[8.2]创建VirtualBox虚拟机.mp4 96.91M

[8.3]虚拟硬盘简介.mp4 44.27M

[8.4]在Windows下创建虚拟硬盘并安装操作系统.mp4 78.68M

[8.5]在Linux下创建虚拟硬盘并安装操作系统.mp4 21.98M

{09}汇编语言程序的调试

[9.1]带调试功能的虚拟机.mp4 11.29M

[9.2]安装Bochs虚拟机.mp4 35.99M

[9.3]为Bochs虚拟机安装虚拟硬盘.mp4 22.23M

[9.4]创建主引导扇区程序.mp4 33.29M

[9.5]将程序写入硬盘主引导扇区.mp4 68.72M

[9.6]用调试器观察程序的执行.mp4 132.84M

{10}原书第1版第4章检测点和习题解析

[10.1]原书第1版第4章检测点和习题解析.mp4 7.86M

{11}在屏幕上显示文本

[11.10]在VirtualBox中运行写屏程序.mp4 28.35M

[11.11]主引导扇区执行时的内存布局.mp4 43.54M

[11.12]使用标号计算跳转的偏移地址.mp4 31.37M

[11.13]使用寄存器的绝对间接近跳转.mp4 32.43M

[11.14]使用相对偏移量的短跳转和近跳转.mp4 49.92M

[11.1]显卡和显存.mp4 37.67M

[11.2]准备访问文本模式下的显存.mp4 22.99M

[11.3]字符的编码和显示属性.mp4 37.42M

[11.4]文本模式下的显存操作.mp4 25.97M

[11.5]MOV指令的形式和机器码.mp4 64.09M

[11.6]列表文件的创建和使用.mp4 42.44M

[11.7]在汇编程序中使用标号.mp4 26.68M

[11.8]段间直接绝对跳转指令.mp4 21.28M

[11.9]在Bochs中运行和调试写屏程序.mp4 130.04M

{12}在屏幕上显示数字

[12.1]显示数字的基本原理.mp4 23.05M

[12.2]无符号数除法指令div.mp4 47.80M

[12.3]在调试器里验证除法操作.mp4 20.87M

[12.4]异或指令xor的用法.mp4 60.69M

[12.5]加法指令add的用法.mp4 30.20M

[12.6]使用标号访问内存数据.mp4 23.46M

[12.7]段超越前缀的使用.mp4 41.56M

[12.8]显示标号的汇编地址.mp4 42.12M

{13}阶段性重点内容总结

[13.1]阶段性重点内容总结.mp4 40.49M

[13.2]原书第1版第5章检测点和习题解析.mp4 49.95M

{14}循环、批量传送和条件转移

[14.1]跳过非指令的数据区.mp4 14.68M

[14.2]逻辑段地址的重新设定.mp4 11.44M

[14.3]串传送指令和标志寄存器.mp4 26.08M

[14.4]NASM的$和$$记号.mp4 38.28M

[14.5]使用循环指令LOOP分解数位.mp4 18.10M

[14.6]基址寻址和INC指令.mp4 33.57M

[14.7]数字的显示和DEC指令.mp4 29.03M

[14.8]基址变址寻址和条件转移指令.mp4 52.21M

{15}计算机中的负数

[15.1]无符号数和有符号数.mp4 43.77M

[15.2]减法指令SUB和求补指令NEG.mp4 62.16M

[15.3]计算机如何区分对待无符号数和有符号数.mp4 39.23M

[15.4]有符号数除法指令IDIV.mp4 57.27M

[15.5]有符号数的符号扩展指令.mp4 66.40M

{16}阶段性知识总结和拓展

[16.1]8086的标志寄存器.mp4 41.81M

[16.2]条件转移指令和CMP指令.mp4 53.99M

[16.3]原书第1版第6章检测点和习题解析.mp4 52.59M

{17}从1加到100并显示结果

[17.1]字符串的定义和累加过程.mp4 29.77M

[17.2]栈的原理和使用.mp4 90.68M

[17.3]栈在数位分解和显示中的应用.mp4 23.34M

[17.4]在调试器里观察栈操作的状态.mp4 44.13M

[17.5]进一步认识栈和栈操作的特点.mp4 30.35M

[17.6]逻辑或指令OR和逻辑与指令AND.mp4 71.25M

{18}INTEL8086处理器的寻址方式

[18.1]寄存器、立即数和直接寻址.mp4 35.08M

[18.2]基址寻址.mp4 61.43M

[18.3]变址寻址.mp4 43.94M

[18.4]基址变址寻址.mp4 39.89M

[18.5]原书第1版第7章检测点和习题解析.mp4 14.37M

{19}硬盘和显卡的访问与控制

[19.10]过程和过程调用.mp4 42.31M

[19.11]过程调用和返回的原理.mp4 26.04M

[19.12]加载整个用户程序.mp4 25.53M

[19.13]用户程序的重定位.mp4 23.44M

[19.14]比特位的移动指令.mp4 67.20M

[19.15]转到用户程序内部执行.mp4 13.82M

[19.16]8086的无条件转移指令.mp4 67.38M

[19.17]用户程序的执行过程.mp4 40.98M

[19.18]验证加载器加载和执行用户程序的过程.mp4 48.20M

[19.19]书中第八章用户程序概述.mp4 23.16M

[19.1]离开主引导扇区.mp4 16.55M

[19.20]与文本显示有关的回车、换行与光标控制.mp4 45.52M

[19.21]回车的光标处理和乘法指令MUL.mp4 82.50M

[19.22]换行和普通字符的处理过程与滚屏操作.mp4 47.48M

[19.23]8086的过程调用方式.mp4 48.45M

[19.24]通过RETF指令转到另一个代码段内执行.mp4 31.66M

[19.25]在程序中访问不同的数据段.mp4 19.51M

[19.26]使用新版FixVhdWr写虚拟硬盘并运行程序.mp4 61.09M

[19.27]原书第一版第8章习题解析解答.mp4 27.65M

[19.2]给汇编语言程序分段.mp4 30.32M

[19.3]控制段内元素的汇编地址.mp4 24.19M

[19.4]加载器和用户程序头部段.mp4 36.90M

[19.5]加载器的工作流程和常数声明.mp4 21.87M

[19.6]确定用户程序的加载位置.mp4 38.09M

[19.7]外围设备及其接口.mp4 20.49M

[19.8]输入输出端口的访问.mp4 33.64M

[19.9]通过硬盘控制器端口读扇区数据.mp4 51.80M

{20}中断和动态时钟显示

[20.10]用NOT指令反转时间分隔符的颜色.mp4 18.33M

[20.11]使用IRET指令从中断过程返回.mp4 10.94M

[20.12]用停机指令HLT使处理器进入低功耗状态.mp4 46.79M

[20.13]内部中断和软中断.mp4 31.83M

[20.14]BIOS中断概述.mp4 62.75M

[20.15]使用BIOS功能调用接收并显示键盘输入.mp4 40.31M

[20.16]原书第9章检测点和习题解析.mp4 13.46M

[20.1]中断和硬件中断.mp4 15.32M

[20.2]中断控制器简介.mp4 17.53M

[20.3]中断号、中断处理过程和中断向量表.mp4 44.68M

[20.4]实时时钟、CMOSRAM和BCD编码.mp4 33.50M

[20.5]实时时钟芯片的中断信号.mp4 49.02M

[20.6]安装0x70号中断处理过程.mp4 41.34M

[20.7]启用更新周期结束中断.mp4 33.22M

[20.8]用TEST指令等待更新周期结束.mp4 35.73M

[20.9]读取BCD码的时间并在屏幕上显示.mp4 37.20M

{21}32位x86处理器编程架构

[21.1]IA-32架构和保护模式.mp4 41.24M

[21.2]寄存器的扩展和扩充.mp4 24.35M

[21.3]32位处理器的内存访问概况.mp4 27.96M

[21.4]32位处理器的寻址方式概况.mp4 44.36M

[21.5]选修-流水线技术.mp4 14.74M

[21.6]选修-高速缓存技术.mp4 11.19M

[21.7]选修-乱序执行技术.mp4 28.93M

[21.8]选修-寄存器重命名技术.mp4 30.59M

[21.9]选修-分支目标预测技术.mp4 24.48M

{22}进入保护模式

[22.10]通过设置寄存器CR0的PE位进入保护模式.mp4 31.83M

[22.11]描述符高速缓存器和保护模式下的内存访问.mp4 26.03M

[22.12]在调试器中观察实模式和保护模式的内存访问.mp4 69.90M

[22.1]保护模式是要保护什么.mp4 23.57M

[22.2]全局描述符表GDT和全局描述符表寄存器GDTR.mp4 15.34M

[22.3]准备创建全局描述符表.mp4 17.44M

[22.4]描述符的分类.mp4 14.86M

[22.5]存储器的段描述符-段的类型和基地址.mp4 16.01M

[22.6]存储器的段描述符-段界限及访问控制位.mp4 22.16M

[22.7]安装存储器的段描述符.mp4 18.14M

[22.8]加载全局描述符表寄存器GDTR.mp4 16.30M

[22.9]开启处理器的第21根地址线A20.mp4 31.10M

{23}指令的格式及其操作尺寸

[23.10]描述符和段描述符高速缓存器的D位.mp4 32.81M

[23.11]进入保护模式后立即切换到32位模块并使用32位默认操作尺寸.mp4 49.68M

[23.1]80286的16位保护模式.mp4 20.84M

[23.2]16位处理器的指令操作尺寸.mp4 13.76M

[23.3]32位处理器的指令操作尺寸.mp4 46.61M

[23.4]x86的指令格式-操作码和立即数部分.mp4 55.22M

[23.5]x86的指令格式-ModRM和偏移量部分.mp4 91.61M

[23.6]x86的指令格式-SIB部分.mp4 47.93M

[23.7]x86的指令格式-指令前缀部分.mp4 7.14M

[23.8]处理器的默认操作尺寸和相关指令前缀.mp4 38.82M

[23.9]用伪指令bits生成16位和32位模块.mp4 18.26M

{24}存储器的保护

[24.10]通过别名来实现段的共用和共享.mp4 34.56M

[24.11]冒泡排序法的基本原理.mp4 15.51M

[24.12]32位操作尺寸下的LOOP指令.mp4 15.98M

[24.13]数据交换指令XCHG.mp4 41.84M

[24.1]话说MOVDS,AX和MOVDS,EAX.mp4 46.38M

[24.2]修改段寄存器时的保护.mp4 18.12M

[24.3]代码段执行时的保护.mp4 16.23M

[24.4]用向上扩展的段做为栈段.mp4 23.08M

[24.5]向上扩展的段用做栈段时的保护.mp4 13.23M

[24.6]访问普通数据段时的保护.mp4 14.69M

[24.7]内存线性地址的回绕特性.mp4 20.26M

[24.8]用向下扩展的段做为栈段.mp4 21.71M

[24.9]向下扩展的段用做栈段时的保护.mp4 23.70M

{25}保护模式程序的动态加载和执行

[25.10]条件传送指令簇CMOVcc.mp4 43.90M

[25.11]计算以512字节为单位的用户程序总长度.mp4 13.88M

[25.12]内存分配的基本策略和方法.mp4 25.86M

[25.13]内存分配的简易实现过程.mp4 19.69M

[25.14]加载用户程序.mp4 20.55M

[25.15]准备安装用户程序的段描述符.mp4 17.96M

[25.16]用SGDT和MOVZX指令确定GDT的位置.mp4 58.06M

[25.17]安装新描述符并生成选择子.mp4 13.82M

[25.18]安装用户程序的段描述符并回填选择子.mp4 20.55M

[25.19]用户程序的执行和退出.mp4 41.10M

[25.1]本章的目标和内容提要.mp4 15.64M

[25.20]在虚拟机上观察内核的加载以及用户程序的执行与退出.mp4 22.42M

[25.2]内核的结构和加载前的准备工作.mp4 63.18M

[25.3]准备为内核的每个段创建和安装描述符.mp4 32.07M

[25.4]段描述符的创建和BSWAP指令.mp4 34.51M

[25.5]进入内核执行.mp4 29.99M

[25.6]进入内核后显示文本信息.mp4 28.54M

[25.7]用CPUID指令取得处理器品牌信息并显示.mp4 45.79M

[25.8]准备加载用户程序.mp4 33.71M

[25.9]预读用户程序并得到它的大小.mp4 16.49M

{26}用户程序编程接口及其实现

[26.10]在虚拟机上验证程序的执行.mp4 15.63M

[26.11]以十六进制形式显示一个双字以及PUSHAD、POPAD和XLAT.mp4 50.16M

[26.1]内核与用户程序之间的栈切换问题.mp4 27.99M

[26.2]在内核中为用户程序提供编程支持.mp4 23.61M

[26.3]用户程序中的符号地址检索表.mp4 32.32M

[26.4]内核程序中的符号地址检索表.mp4 29.46M

[26.5]串比较指令CMPS.mp4 27.03M

[26.6]串比较的方向和重复前缀.mp4 69.16M

[26.7]使用外循环依次取得用户SALT表的每个条目.mp4 15.13M

[26.8]使用内循环依次取得内核SALT表的每个条目并进行比较.mp4 20.49M

[26.9]在用户程序内使用内核编程接口读硬盘和显示文本.mp4 26.83M

{27}任务和任务的创建

[27.10]TSS描述符的格式和TSS描述符的创建.mp4 12.95M

[27.11]用带参数的RET指令返回调用者.mp4 26.99M

[27.12]加载任务寄存器TR和局部描述符表寄存器LDTR.mp4 38.08M

[27.13]在虚拟机上验证任务的执行.mp4 48.88M

[27.1]任务:概念和组成.mp4 10.23M

[27.2]使用任务控制块保存任务基本信息.mp4 36.04M

[27.3]将任务控制块加入任务控制块链表.mp4 16.06M

[27.4]通过栈传递例程参数以及立即数的压栈指令.mp4 20.24M

[27.5]段寄存器的压栈和出栈以及栈的随机访问机制.mp4 17.83M

[27.6]创建任务的局部描述符表LDT.mp4 22.51M

[27.7]在当前任务的LDT中安装描述符.mp4 31.00M

[27.8]LDT描述符的格式和LDT描述符的创建.mp4 30.74M

[27.9]创建任务状态段TSS.mp4 16.02M

{28}特权级和特权级保护

[28.10]一般情况下的请求特权级设置.mp4 18.59M

[28.11]为内核接口例程创建调用门.mp4 58.30M

[28.12]调用门的测试和调用门转移过程.mp4 33.76M

[28.13]通过调用门实施低特权级到高特权级的转移.mp4 37.51M

[28.14]通过调用门转移控制时的栈切换过程.mp4 16.69M

[28.15]通过调用门转移控制并返回的完整描述.mp4 26.95M

[28.16]创建0、1和2特权级的栈并登记在TSS中.mp4 32.65M

[28.17]通过模拟调用门返回进入用户程序执行.mp4 35.57M

[28.1]特权级保护的必要性和特权保护机制.mp4 26.83M

[28.2]当前特权级CPL.mp4 10.10M

[28.3]描述符特权级DPL.mp4 28.89M

[28.4]任务公共部分和私有部分的特权级划分.mp4 50.25M

[28.5]依从的代码段.mp4 8.74M

[28.6]门描述符和调用门.mp4 23.53M

[28.7]本章程序说明及特权级检查的时机.mp4 17.24M

[28.8]请求特权级RPL.mp4 25.02M

[28.9]请求特权级调整指令ARPL.mp4 19.96M

{29}协同式任务切换

[29.10]通过JMPFAR执行任务切换的过程.mp4 27.62M

[29.11]内核任务与用户任务轮流执行的过程.mp4 47.30M

[29.12]任务的终止和清理.mp4 36.34M

[29.1]多任务和任务切换概述.mp4 25.85M

[29.2]内核任务的创建和I/O特权级IOPL.mp4 28.80M

[29.3]I/O特权级的修改和POPF指令.mp4 14.64M

[29.4]任务的用户态和内核态.mp4 17.10M

[29.5]I/O许可位串和TSS的I/O许可位映射区.mp4 24.51M

[29.6]任务切换的方法及内核任务的确立.mp4 33.28M

[29.7]用户任务的创建和初始化.mp4 58.42M

[29.8]简单的任务调度和切换策略.mp4 20.35M

[29.9]遍历TCB链表寻找忙任务和就绪任务.mp4 25.50M

{30}中断和异常的处理与抢占式多任务

[30.10]中断和异常发生时的栈切换过程.mp4 30.89M

[30.11]在中断处理过程中实施任务切换(含NOP指令的介绍).mp4 62.43M

[30.12]抢占式多任务的执行效果演示.mp4 35.49M

[30.1]中断和异常概述.mp4 21.50M

[30.2]保护模式下中断和异常的向量分配.mp4 23.71M

[30.3]中断描述符表、中断门和陷阱门.mp4 29.79M

[30.4]本章程序介绍.mp4 56.64M

[30.5]创建并安装全部的256个中断门.mp4 47.84M

[30.6]为实时时钟中断创建和安装中断门.mp4 21.08M

[30.7]加载中断描述符表寄存器IDTR.mp4 14.26M

[30.8]重新设置8259A主片的中断向量.mp4 37.43M

[30.9]中断和异常发生时的特权级检查.mp4 12.34M

{31}分页和动态页面分配

[31.10]设置控制寄存器CR3和CR0开启分页功能.mp4 13.40M

[31.11]在调试器中观察页目录表和页表.mp4 51.87M

[31.12]准备将内核映射到虚拟内存的高端.mp4 26.11M

[31.13]在分页机制下访问页目录表自身.mp4 20.23M

[31.14]使内核在虚拟内存高端的映射生效.mp4 28.68M

[31.15]为内核任务创建任务控制块TCB.mp4 32.55M

[31.16]为内核任务的TSS分配内存空间.mp4 30.63M

[31.17]处理与线性地址对应的页目录项和页表项.mp4 27.06M

[31.18]根据需要分配物理页并设置页表项.mp4 10.42M

[31.19]物理内存的页面管理和页映射位串.mp4 29.05M

[31.1]保护模式下的段式虚拟内存管理.mp4 27.08M

[31.20]空闲页的搜索和BTS指令.mp4 12.47M

[31.21]空闲页搜索和分配的具体过程.mp4 21.27M

[31.22]确立内核任务并开始创建用户任务.mp4 36.15M

[31.23]用户任务的内存分配策略.mp4 26.37M

[31.24]清空内核任务页目录表的前半部分并刷新TLB.mp4 27.57M

[31.25]为用户任务分配内存并创建LDT.mp4 21.21M

[31.26]用户程序的加载和重定位.mp4 38.74M

[31.27]用户任务页目录表的创建和访问以及INVLPG指令.mp4 43.95M

[31.28]第二个用户任务的创建和分页模式下的任务切换.mp4 32.05M

[31.29]分页模式下多任务切换的演示和调试.mp4 107.49M

[31.2]每个任务独立的虚拟内存.mp4 14.29M

[31.3]物理内存的分页以及段到页的拆分.mp4 20.83M

[31.4]处理器的段部件和页部件.mp4 20.87M

[31.5]从线性地址到物理地址的转换过程.mp4 21.29M

[31.6]页目录和页表及其地址转换过程.mp4 28.53M

[31.7]设计内核的页目录和页表.mp4 34.58M

[31.8]页目录项和页表项的组成格式.mp4 12.55M

[31.9]创建内核的页表并初始化低端1MB对应的页表项.mp4 18.38M

{32}平坦模型(大结局)

[32.1]为什么要引入平坦模型及平坦模型的特点.mp4 24.65M

[32.2]在主引导程序中创建平坦模型下的段.mp4 20.55M

[32.3]平坦模型对内核程序分段的影响.mp4 43.66M

[32.4]平坦模型对加载内核程序的影响.mp4 26.22M

[32.5]平坦模型下的内核初始化与内核任务的确立.mp4 47.66M

[32.6]平坦模型下的用户程序结构.mp4 37.86M

[32.7]平坦模型下的用户任务创建.mp4 13.00M

[32.8]在用户任务内动态分配内存.mp4 19.35M

[32.9]平坦模型下的多任务切换演示与调试.mp4 14.79M

X86从实模式到保护模式 源代码.pdf 1.13M

x86汇编语言-从实模式到保护模式.文字版.pdf 33.90M

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注