星颖 发表于 2026-4-3 20:46:23

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

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

├── {01}--课程说明
│  └── --课程说明.mp4
├── {02}--汇编语言的前世今生
│  ├── --处理器.mp4
│  ├── --汇编语言的诞生.mp4
│  ├── --引子.mp4
│  ├── --用电来表示数字.mp4
│  ├── --二进制加法机.mp4
│  ├── --具有记忆功能的器件——寄存器.mp4
│  ├── --带寄存器的加法机.mp4
│  ├── --能做四则运算的机器.mp4
│  ├── --机器指令.mp4
│  ├── --内存.mp4
│  └── --自动计算.mp4
├── {03}--认识8086处理器
│  ├── --8086的通用寄存器.mp4
│  ├── --8086的内存访问和字节序.mp4
│  ├── --程序的分段.mp4
│  ├── --程序的重定位难题.mp4
│  ├── --段地址和偏移地址.mp4
│  ├── --8086内存访问的困境.mp4
│  ├── --8086选择段地址的策略.mp4
│  ├── --8086的内存访问过程.mp4
│  └── --逻辑地址和分段的灵活性.mp4
├── {04}--原书第1版第2章检测点和习题解析
│  └── --原书第1版第2章检测点和习题解析.mp4
├── {05}--汇编语言和汇编软件
│  ├── --创建汇编语言源程序.mp4
│  ├── --Notepad++的下载和使用.mp4
│  ├── --下载和安装编译器NASM.mp4
│  ├── --编译汇编语言源程序.mp4
│  ├── --下载和使用配套源码及工具.mp4
│  └── --将编译功能集成到Notepad++.mp4
├── {06}--原书第1版第3章检测点和习题解析
│  └── --原书第1版第3章检测点和习题解析.mp4
├── {07}--如何执行编译好的程序
│  ├── --8086加电或者复位时的状态.mp4
│  ├── --8086地址空间的分配.mp4
│  ├── --跳转指令.mp4
│  ├── --硬盘的构造和工作原理.mp4
│  └── --一切从主引导扇区开始.mp4
├── {08}--虚拟机的安装和使用
│  ├── --安装VirtualBox虚拟机管理器.mp4
│  ├── --创建VirtualBox虚拟机.mp4
│  ├── --虚拟硬盘简介.mp4
│  ├── --在Windows下创建虚拟硬盘并安装操作系统.mp4
│  └── --在Linux下创建虚拟硬盘并安装操作系统.mp4
├── {09}--汇编语言程序的调试
│  ├── --带调试功能的虚拟机.mp4
│  ├── --安装Bochs虚拟机.mp4
│  ├── --为Bochs虚拟机安装虚拟硬盘.mp4
│  ├── --创建主引导扇区程序.mp4
│  ├── --将程序写入硬盘主引导扇区.mp4
│  └── --用调试器观察程序的执行.mp4
├── {10}--原书第1版第4章检测点和习题解析
│  └── --原书第1版第4章检测点和习题解析.mp4
├── {11}--在屏幕上显示文本
│  ├── --在VirtualBox中运行写屏程序.mp4
│  ├── --主引导扇区执行时的内存布局.mp4
│  ├── --使用标号计算跳转的偏移地址.mp4
│  ├── --使用寄存器的绝对间接近跳转.mp4
│  ├── --使用相对偏移量的短跳转和近跳转.mp4
│  ├── --显卡和显存.mp4
│  ├── --准备访问文本模式下的显存.mp4
│  ├── --字符的编码和显示属性.mp4
│  ├── --文本模式下的显存操作.mp4
│  ├── --MOV指令的形式和机器码.mp4
│  ├── --列表文件的创建和使用.mp4
│  ├── --在汇编程序中使用标号.mp4
│  ├── --段间直接绝对跳转指令.mp4
│  └── --在Bochs中运行和调试写屏程序.mp4
├── {12}--在屏幕上显示数字
│  ├── --显示数字的基本原理.mp4
│  ├── --无符号数除法指令div.mp4
│  ├── --在调试器里验证除法操作.mp4
│  ├── --异或指令xor的用法.mp4
│  ├── --加法指令add的用法.mp4
│  ├── --使用标号访问内存数据.mp4
│  ├── --段超越前缀的使用.mp4
│  └── --显示标号的汇编地址.mp4
├── {13}--阶段性重点内容总结
│  ├── --阶段性重点内容总结.mp4
│  └── --原书第1版第5章检测点和习题解析.mp4
├── {14}--循环、批量传送和条件转移
│  ├── --跳过非指令的数据区.mp4
│  ├── --逻辑段地址的重新设定.mp4
│  ├── --串传送指令和标志寄存器.mp4
│  ├── --NASM的$和$$记号.mp4
│  ├── --使用循环指令LOOP分解数位.mp4
│  ├── --基址寻址和INC指令.mp4
│  ├── --数字的显示和DEC指令.mp4
│  └── --基址变址寻址和条件转移指令.mp4
├── {15}--计算机中的负数
│  ├── --无符号数和有符号数.mp4
│  ├── --减法指令SUB和求补指令NEG.mp4
│  ├── --计算机如何区分对待无符号数和有符号数.mp4
│  ├── --有符号数除法指令IDIV.mp4
│  └── --有符号数的符号扩展指令.mp4
├── {16}--阶段性知识总结和拓展
│  ├── --8086的标志寄存器.mp4
│  ├── --条件转移指令和CMP指令.mp4
│  └── --原书第1版第6章检测点和习题解析.mp4
├── {17}--从1加到100并显示结果
│  ├── --字符串的定义和累加过程.mp4
│  ├── --栈的原理和使用.mp4
│  ├── --栈在数位分解和显示中的应用.mp4
│  ├── --在调试器里观察栈操作的状态.mp4
│  ├── --进一步认识栈和栈操作的特点.mp4
│  └── --逻辑或指令OR和逻辑与指令AND.mp4
├── {18}--INTEL8086处理器的寻址方式
│  ├── --寄存器、立即数和直接寻址.mp4
│  ├── --基址寻址.mp4
│  ├── --变址寻址.mp4
│  ├── --基址变址寻址.mp4
│  └── --原书第1版第7章检测点和习题解析.mp4
├── {19}--硬盘和显卡的访问与控制
│  ├── --过程和过程调用.mp4
│  ├── --过程调用和返回的原理.mp4
│  ├── --加载整个用户程序.mp4
│  ├── --用户程序的重定位.mp4
│  ├── --比特位的移动指令.mp4
│  ├── --转到用户程序内部执行.mp4
│  ├── --8086的无条件转移指令.mp4
│  ├── --用户程序的执行过程.mp4
│  ├── --验证加载器加载和执行用户程序的过程.mp4
│  ├── --书中第八章用户程序概述.mp4
│  ├── --离开主引导扇区.mp4
│  ├── --与文本显示有关的回车、换行与光标控制.mp4
│  ├── --回车的光标处理和乘法指令MUL.mp4
│  ├── --换行和普通字符的处理过程与滚屏操作.mp4
│  ├── --8086的过程调用方式.mp4
│  ├── --通过RETF指令转到另一个代码段内执行.mp4
│  ├── --在程序中访问不同的数据段.mp4
│  ├── --使用新版FixVhdWr写虚拟硬盘并运行程序.mp4
│  ├── --原书第一版第8章习题解析解答.mp4
│  ├── --给汇编语言程序分段.mp4
│  ├── --控制段内元素的汇编地址.mp4
│  ├── --加载器和用户程序头部段.mp4
│  ├── --加载器的工作流程和常数声明.mp4
│  ├── --确定用户程序的加载位置.mp4
│  ├── --外围设备及其接口.mp4
│  ├── --输入输出端口的访问.mp4
│  └── --通过硬盘控制器端口读扇区数据.mp4
├── {20}--中断和动态时钟显示
│  ├── --用NOT指令反转时间分隔符的颜色.mp4
│  ├── --使用IRET指令从中断过程返回.mp4
│  ├── --用停机指令HLT使处理器进入低功耗状态.mp4
│  ├── --内部中断和软中断.mp4
│  ├── --BIOS中断概述.mp4
│  ├── --使用BIOS功能调用接收并显示键盘输入.mp4
│  ├── --原书第9章检测点和习题解析.mp4
│  ├── --中断和硬件中断.mp4
│  ├── --中断控制器简介.mp4
│  ├── --中断号、中断处理过程和中断向量表.mp4
│  ├── --实时时钟、CMOSRAM和BCD编码.mp4
│  ├── --实时时钟芯片的中断信号.mp4
│  ├── --安装0x70号中断处理过程.mp4
│  ├── --启用更新周期结束中断.mp4
│  ├── --用TEST指令等待更新周期结束.mp4
│  └── --读取BCD码的时间并在屏幕上显示.mp4
├── {21}--32位x86处理器编程架构
│  ├── --IA-32架构和保护模式.mp4
│  ├── --寄存器的扩展和扩充.mp4
│  ├── --32位处理器的内存访问概况.mp4
│  ├── --32位处理器的寻址方式概况.mp4
│  ├── --选修-流水线技术.mp4
│  ├── --选修-高速缓存技术.mp4
│  ├── --选修-乱序执行技术.mp4
│  ├── --选修-寄存器重命名技术.mp4
│  └── --选修-分支目标预测技术.mp4
├── {22}--进入保护模式
│  ├── --通过设置寄存器CR0的PE位进入保护模式.mp4
│  ├── --描述符高速缓存器和保护模式下的内存访问.mp4
│  ├── --在调试器中观察实模式和保护模式的内存访问.mp4
│  ├── --保护模式是要保护什么.mp4
│  ├── --全局描述符表GDT和全局描述符表寄存器GDTR.mp4
│  ├── --准备创建全局描述符表.mp4
│  ├── --描述符的分类.mp4
│  ├── --存储器的段描述符-段的类型和基地址.mp4
│  ├── --存储器的段描述符-段界限及访问控制位.mp4
│  ├── --安装存储器的段描述符.mp4
│  ├── --加载全局描述符表寄存器GDTR.mp4
│  └── --开启处理器的第21根地址线A20.mp4
├── {23}--指令的格式及其操作尺寸
│  ├── --描述符和段描述符高速缓存器的D位.mp4
│  ├── --进入保护模式后立即切换到32位模块并使用32位默认操作尺寸.mp4
│  ├── --80286的16位保护模式.mp4
│  ├── --16位处理器的指令操作尺寸.mp4
│  ├── --32位处理器的指令操作尺寸.mp4
│  ├── --x86的指令格式-操作码和立即数部分.mp4
│  ├── --x86的指令格式-ModRM和偏移量部分.mp4
│  ├── --x86的指令格式-SIB部分.mp4
│  ├── --x86的指令格式-指令前缀部分.mp4
│  ├── --处理器的默认操作尺寸和相关指令前缀.mp4
│  └── --用伪指令bits生成16位和32位模块.mp4
├── {24}--存储器的保护
│  ├── --通过别名来实现段的共用和共享.mp4
│  ├── --冒泡排序法的基本原理.mp4
│  ├── --32位操作尺寸下的LOOP指令.mp4
│  ├── --数据交换指令XCHG.mp4
│  ├── --话说MOVDS,AX和MOVDS,EAX.mp4
│  ├── --修改段寄存器时的保护.mp4
│  ├── --代码段执行时的保护.mp4
│  ├── --用向上扩展的段做为栈段.mp4
│  ├── --向上扩展的段用做栈段时的保护.mp4
│  ├── --访问普通数据段时的保护.mp4
│  ├── --内存线性地址的回绕特性.mp4
│  ├── --用向下扩展的段做为栈段.mp4
│  └── --向下扩展的段用做栈段时的保护.mp4
├── {25}--保护模式程序的动态加载和执行
│  ├── --条件传送指令簇CMOVcc.mp4
│  ├── --计算以512字节为单位的用户程序总长度.mp4
│  ├── --内存分配的基本策略和方法.mp4
│  ├── --内存分配的简易实现过程.mp4
│  ├── --加载用户程序.mp4
│  ├── --准备安装用户程序的段描述符.mp4
│  ├── --用SGDT和MOVZX指令确定GDT的位置.mp4
│  ├── --安装新描述符并生成选择子.mp4
│  ├── --安装用户程序的段描述符并回填选择子.mp4
│  ├── --用户程序的执行和退出.mp4
│  ├── --本章的目标和内容提要.mp4
│  ├── --在虚拟机上观察内核的加载以及用户程序的执行与退出.mp4
│  ├── --内核的结构和加载前的准备工作.mp4
│  ├── --准备为内核的每个段创建和安装描述符.mp4
│  ├── --段描述符的创建和BSWAP指令.mp4
│  ├── --进入内核执行.mp4
│  ├── --进入内核后显示文本信息.mp4
│  ├── --用CPUID指令取得处理器品牌信息并显示.mp4
│  ├── --准备加载用户程序.mp4
│  └── --预读用户程序并得到它的大小.mp4
├── {26}--用户程序编程接口及其实现
│  ├── --在虚拟机上验证程序的执行.mp4
│  ├── --以十六进制形式显示一个双字以及PUSHAD、POPAD和XLAT.mp4
│  ├── --内核与用户程序之间的栈切换问题.mp4
│  ├── --在内核中为用户程序提供编程支持.mp4
│  ├── --用户程序中的符号地址检索表.mp4
│  ├── --内核程序中的符号地址检索表.mp4
│  ├── --串比较指令CMPS.mp4
│  ├── --串比较的方向和重复前缀.mp4
│  ├── --使用外循环依次取得用户SALT表的每个条目.mp4
│  ├── --使用内循环依次取得内核SALT表的每个条目并进行比较.mp4
│  └── --在用户程序内使用内核编程接口读硬盘和显示文本.mp4
├── {27}--任务和任务的创建
│  ├── --TSS描述符的格式和TSS描述符的创建.mp4
│  ├── --用带参数的RET指令返回调用者.mp4
│  ├── --加载任务寄存器TR和局部描述符表寄存器LDTR.mp4
│  ├── --在虚拟机上验证任务的执行.mp4
│  ├── --任务:概念和组成.mp4
│  ├── --使用任务控制块保存任务基本信息.mp4
│  ├── --将任务控制块加入任务控制块链表.mp4
│  ├── --通过栈传递例程参数以及立即数的压栈指令.mp4
│  ├── --段寄存器的压栈和出栈以及栈的随机访问机制.mp4
│  ├── --创建任务的局部描述符表LDT.mp4
│  ├── --在当前任务的LDT中安装描述符.mp4
│  ├── --LDT描述符的格式和LDT描述符的创建.mp4
│  └── --创建任务状态段TSS.mp4
├── {28}--特权级和特权级保护
│  ├── --一般情况下的请求特权级设置.mp4
│  ├── --为内核接口例程创建调用门.mp4
│  ├── --调用门的测试和调用门转移过程.mp4
│  ├── --通过调用门实施低特权级到高特权级的转移.mp4
│  ├── --通过调用门转移控制时的栈切换过程.mp4
│  ├── --通过调用门转移控制并返回的完整描述.mp4
│  ├── --创建0、1和2特权级的栈并登记在TSS中.mp4
│  ├── --通过模拟调用门返回进入用户程序执行.mp4
│  ├── --特权级保护的必要性和特权保护机制.mp4
│  ├── --当前特权级CPL.mp4
│  ├── --描述符特权级DPL.mp4
│  ├── --任务公共部分和私有部分的特权级划分.mp4
│  ├── --依从的代码段.mp4
│  ├── --门描述符和调用门.mp4
│  ├── --本章程序说明及特权级检查的时机.mp4
│  ├── --请求特权级RPL.mp4
│  └── --请求特权级调整指令ARPL.mp4
├── {29}--协同式任务切换
│  ├── --通过JMPFAR执行任务切换的过程.mp4
│  ├── --内核任务与用户任务轮流执行的过程.mp4
│  ├── --任务的终止和清理.mp4
│  ├── --多任务和任务切换概述.mp4
│  ├── --内核任务的创建和I/O特权级IOPL.mp4
│  ├── --I/O特权级的修改和POPF指令.mp4
│  ├── --任务的用户态和内核态.mp4
│  ├── --I/O许可位串和TSS的I/O许可位映射区.mp4
│  ├── --任务切换的方法及内核任务的确立.mp4
│  ├── --用户任务的创建和初始化.mp4
│  ├── --简单的任务调度和切换策略.mp4
│  └── --遍历TCB链表寻找忙任务和就绪任务.mp4
├── {30}--中断和异常的处理与抢占式多任务
│  ├── --中断和异常发生时的栈切换过程.mp4
│  ├── --在中断处理过程中实施任务切换(含NOP指令的介绍).mp4
│  ├── --抢占式多任务的执行效果演示.mp4
│  ├── --中断和异常概述.mp4
│  ├── --保护模式下中断和异常的向量分配.mp4
│  ├── --中断描述符表、中断门和陷阱门.mp4
│  ├── --本章程序介绍.mp4
│  ├── --创建并安装全部的256个中断门.mp4
│  ├── --为实时时钟中断创建和安装中断门.mp4
│  ├── --加载中断描述符表寄存器IDTR.mp4
│  ├── --重新设置8259A主片的中断向量.mp4
│  └── --中断和异常发生时的特权级检查.mp4
├── {31}--分页和动态页面分配
│  ├── --设置控制寄存器CR3和CR0开启分页功能.mp4
│  ├── --在调试器中观察页目录表和页表.mp4
│  ├── --准备将内核映射到虚拟内存的高端.mp4
│  ├── --在分页机制下访问页目录表自身.mp4
│  ├── --使内核在虚拟内存高端的映射生效.mp4
│  ├── --为内核任务创建任务控制块TCB.mp4
│  ├── --为内核任务的TSS分配内存空间.mp4
│  ├── --处理与线性地址对应的页目录项和页表项.mp4
│  ├── --根据需要分配物理页并设置页表项.mp4
│  ├── --物理内存的页面管理和页映射位串.mp4
│  ├── --保护模式下的段式虚拟内存管理.mp4
│  ├── --空闲页的搜索和BTS指令.mp4
│  ├── --空闲页搜索和分配的具体过程.mp4
│  ├── --确立内核任务并开始创建用户任务.mp4
│  ├── --用户任务的内存分配策略.mp4
│  ├── --清空内核任务页目录表的前半部分并刷新TLB.mp4
│  ├── --为用户任务分配内存并创建LDT.mp4
│  ├── --用户程序的加载和重定位.mp4
│  ├── --用户任务页目录表的创建和访问以及INVLPG指令.mp4
│  ├── --第二个用户任务的创建和分页模式下的任务切换.mp4
│  ├── --分页模式下多任务切换的演示和调试.mp4
│  ├── --每个任务独立的虚拟内存.mp4
│  ├── --物理内存的分页以及段到页的拆分.mp4
│  ├── --处理器的段部件和页部件.mp4
│  ├── --从线性地址到物理地址的转换过程.mp4
│  ├── --页目录和页表及其地址转换过程.mp4
│  ├── --设计内核的页目录和页表.mp4
│  ├── --页目录项和页表项的组成格式.mp4
│  └── --创建内核的页表并初始化低端1MB对应的页表项.mp4
├── {32}--平坦模型(大结局)
│  ├── --为什么要引入平坦模型及平坦模型的特点.mp4
│  ├── --在主引导程序中创建平坦模型下的段.mp4
│  ├── --平坦模型对内核程序分段的影响.mp4
│  ├── --平坦模型对加载内核程序的影响.mp4
│  ├── --平坦模型下的内核初始化与内核任务的确立.mp4
│  ├── --平坦模型下的用户程序结构.mp4
│  ├── --平坦模型下的用户任务创建.mp4
│  ├── --在用户任务内动态分配内存.mp4
│  └── --平坦模型下的多任务切换演示与调试.mp4
├── X86从实模式到保护模式 源代码.pdf
└── x86汇编语言-从实模式到保护模式.文字版.pdf

下载地址:
**** Hidden Message *****
页: [1]
查看完整版本: 网易云课堂 -x86汇编语言:从实模式到保护模式