获取资料

X86汇编语言-实模式到保护模式

X86汇编语言-实模式到保护模式

课程概述

汇编语言教材《x86汇编语言:从实模式到保护模式》的作者亲自授课,以本书为蓝本加以拓展和细化,并附有原书课后习题的解析。不需要过多的基础即可听懂!

本课程共约300课时,最多半年内更新完毕,每周内至少更新5个课时。在校学生可凭学生证件,享受8折优惠(已购买的除外)。

推荐使用支付宝、微信、银行卡方式支付。购买后在个人电脑(PC)或移动设备(手机、平板电脑等)上均可观看。

适用人群

了解数制,懂得二进制、十六进制,能够在二进制、十进制和十六进制之间换算,具有计算机的使用经验。

课程目录

1 课程说明

课程说明.mp4 129.74M

2 汇编语言的前世今生

1 引子.mp4 8.53M

10 处理器.mp4 22.41M

11 汇编语言的诞生.mp4 24.45M

2 用电来表示数字.mp4 12.29M

3 二进制加法机.mp4 10.22M

4 具有记忆功能的器件-寄存器.mp4 15.14M

5 带寄存器的加法机.mp4 12.53M

6 能做四则运算的机器.mp4 14.99M

7 机器指令.mp4 77.18M

8 内存.mp4 267.03M

9 自动计算.mp4 34.58M

3 认识8086处理器

1 8086的通用寄存器.mp4 26.51M

2 8086的内存访问和字节序.mp4 14.72M

3 程序的分段.mp4 12.78M

4 程序的重定位难题.mp4 16.08M

5 段地址和偏移地址.mp4 14.90M

6 8086内存访问的困境.mp4 13.21M

7 8086选择段地址的策略.mp4 27.92M

8 8086的内存访问过程.mp4 15.89M

9 逻辑地址和分段的灵活性.mp4 28.48M

4 汇编语言和汇编软件

1 创建汇编语言源程序.mp4 29.30M

2 Notepad 的下载和使用.mp4 27.06M

3 下载和安装编译器NASM.mp4 62.56M

4 编译汇编语言源程序.mp4 39.38M

5 下载和使用配套源码及工具.mp4 60.46M

6 将编译功能集成到Notepad .mp4 22.97M

5 如何执行编译好的程序

1 8086加电或者复位时的状态.mp4 28.71M

2 8086地址空间的分配.mp4 38.61M

3 跳转指令.mp4 19.16M

4 硬盘的构造和工作原理.mp4 26.87M

5 一切从主引导扇区开始.mp4 83.11M

6 虚拟机的安装和使用

1 安装VirtualBox虚拟机管理器.mp4 125.98M

2 创建VirtualBox虚拟机.mp4 312.55M

3 虚拟硬盘简介.mp4 175.47M

4 在Windows下创建虚拟硬盘并安装操作系统.mp4 303.92M

5 在Linux下创建虚拟硬盘并安装操作系统.mp4 26.09M

7 汇编语言程序的调试

1 带调试功能的虚拟机.mp4 24.18M

2 安装Bochs虚拟机.mp4 41.95M

3 为Bochs虚拟机安装虚拟硬盘.mp4 58.72M

4 创建主引导扇区程序.mp4 40.33M

5 将程序写入硬盘主引导扇区.mp4 335.87M

6 用调试器观察程序的执行.mp4 165.04M

8 在屏幕上显示文本

1 显卡和显存.mp4 156.42M

10 在VirtualBox中运行写屏程序.mp4 32.11M

11 主引导扇区执行时的内存布局.mp4 200.46M

12 使用标号计算跳转的偏移地址.mp4 37.33M

13 使用寄存器的绝对间接近跳转.mp4 42.91M

14 使用相对偏移量的短跳转和近跳转.mp4 60.66M

2 准备访问文本模式下的显存.mp4 31.19M

3 字符的编码和显示属性.mp4 44.11M

4 文本模式下的显存操作.mp4 31.76M

5 MOV指令的形式和机器码.mp4 70.80M

6 列表文件的创建和使用.mp4 50.54M

7 在汇编程序中使用标号.mp4 32.04M

8 段间直接绝对跳转指令.mp4 26.12M

9 在Bochs中运行和调试写屏程序.mp4 500.04M

9 在屏幕上显示数字

1 显示数字的基本原理.mp4 31.05M

2 无符号数除法指令div.mp4 54.11M

3 在调试器里验证除法操作.mp4 24.99M

4 异或指令xor的用法.mp4 283.14M

5 加法指令add的用法.mp4 31.77M

6 使用标号访问内存数据.mp4 42.12M

7 段超越前缀的使用.mp4 50.10M

8 显示标号的汇编地址.mp4 128.18M

10 循环 批量传送和条件转移

1 跳过非指令的数据区.mp4 36.83M

2 逻辑段地址的重新设定.mp4 13.59M

3 串传送指令和标志寄存器.mp4 77.84M

4 NASM的$和$$记号.mp4 43.88M

5 使用循环指令LOOP分解数位.mp4 71.73M

6 基址寻址和INC指令.mp4 158.36M

7 数字的显示和DEC指令.mp4 35.02M

8 基址变址寻址和条件转移指令.mp4 64.36M

11 计算机中的负数

1 无符号数和有符号数.mp4 59.90M

2 减法指令SUB和求补指令NEG.mp4 319.62M

3 计算机如何区分对待无符号数和有符号数.mp4 209.34M

4 有符号数除法指令IDIV.mp4 231.08M

5 有符号数的符号扩展指令.mp4 295.72M

12 阶段性知识总结和拓展

1 阶段性重点内容总结.mp4 54.20M

2 8086的标志寄存器.mp4 102.85M

3 条件转移指令和CMP指令.mp4 209.10M

13 从1加到100并显示结果

1 字符串的定义和累加过程.mp4 72.00M

2 栈的原理和使用.mp4 483.31M

3 栈在数位分解和显示中的应用.mp4 27.22M

4 在调试器里观察栈操作的状态.mp4 154.81M

5 进一步认识栈和栈操作的特点.mp4 32.69M

6 逻辑或指令OR和逻辑与指令AND.mp4 357.70M

14 INTEL8086处理器的寻址方式

1 寄存器 立即数和直接寻址.mp4 43.36M

2 基址寻址.mp4 76.67M

3 变址寻址.mp4 122.05M

4 基址变址寻址.mp4 50.20M

15 硬盘和显卡的访问与控制

1 离开主引导扇区.mp4 58.23M

10 过程和过程调用.mp4 49.71M

11 过程调用和返回的原理.mp4 31.86M

12 加载整个用户程序.mp4 30.23M

13 用户程序的重定位.mp4 27.38M

14 比特位的移动指令.mp4 85.03M

15 转到用户程序内部执行.mp4 30.66M

16 8086的无条件转移指令.mp4 287.12M

17 用户程序的执行过程.mp4 47.42M

18 验证加载器加载和执行用户程序的过程.mp4 55.50M

19 书中第八章用户程序概述.mp4 26.91M

2 给汇编语言程序分段.mp4 54.79M

20 与文本显示有关的回车 换行与光标控制.mp4 53.89M

21 回车的光标处理和乘法指令MUL.mp4 437.41M

22 换行和普通字符的处理过程与滚屏操作.mp4 133.37M

23 8086的过程调用方式.mp4 63.92M

24 通过RETF指令转到另一个代码段内执行.mp4 36.37M

25 在程序中访问不同的数据段.mp4 20.62M

26 使用新版FixVhdWr写虚拟硬盘并运行程序.mp4 375.40M

3 控制段内元素的汇编地址.mp4 90.37M

4 加载器和用户程序头部段.mp4 44.01M

5 加载器的工作流程和常数声明.mp4 72.43M

6 确定用户程序的加载位置.mp4 45.40M

7 外围设备及其接口.mp4 45.34M

8 输入输出端口的访问.mp4 36.50M

9 通过硬盘控制器端口读扇区数据.mp4 59.06M

16 中断和动态时钟显示

1 中断和硬件中断.mp4 17.05M

10 用NOT指令反转时间分隔符的颜色.mp4 19.82M

11 使用IRET指令从中断过程返回.mp4 13.64M

12 用停机指令HLT使处理器进入低功耗状态.mp4 54.57M

13 内部中断和软中断.mp4 35.05M

14 BIOS中断概述.mp4 66.26M

15 使用BIOS功能调用接收并显示键盘输入.mp4 212.18M

2 中断控制器简介.mp4 20.55M

3 中断号 中断处理过程和中断向量表.mp4 267.54M

4 实时时钟 CMOSRAM和BCD编码.mp4 151.17M

5 实时时钟芯片的中断信号.mp4 54.86M

6 安装0x70号中断处理过程.mp4 127.27M

7 启用更新周期结束中断.mp4 40.05M

8 用TEST指令等待更新周期结束.mp4 170.83M

9 读取BCD码的时间并在屏幕上显示.mp4 198.68M

17 32位x86处理器编程架构

1 IA-32架构和保护模式.mp4 45.09M

2 寄存器的扩展和扩充.mp4 126.81M

3 32位处理器的内存访问概况.mp4 30.02M

4 32位处理器的寻址方式概况.mp4 119.27M

5 流水线技术.mp4 16.48M

6 高速缓存技术.mp4 20.66M

7 乱序执行技术.mp4 37.17M

8 寄存器重命名技术.mp4 110.58M

9 分支目标预测技术.mp4 86.76M

18 进入保护模式

1 保护模式是要保护什么.mp4 28.71M

10 通过设置寄存器CR0的PE位进入保护模式.mp4 36.61M

11 描述符高速缓存器和保护模式下的内存访问.mp4 30.31M

12 在调试器中观察实模式和保护模式的内存访问.mp4 74.95M

2 全局描述符表GDT和全局描述符表寄存器GDTR.mp4 17.93M

3 准备创建全局描述符表.mp4 20.38M

4 描述符的分类.mp4 75.69M

5 存储器的段描述符-段的类型和基地址.mp4 19.72M

6 存储器的段描述符-段界限及访问控制位.mp4 25.76M

7 安装存储器的段描述符.mp4 21.21M

8 加载全局描述符表寄存器GDTR.mp4 19.44M

9 开启处理器的第21根地址线A20.mp4 35.24M

19 指令的格式及其操作尺寸

1 80286的16位保护模式.mp4 25.19M

10 描述符和段描述符高速缓存器的D位.mp4 38.60M

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

2 16位处理器的指令操作尺寸.mp4 16.03M

3 32位处理器的指令操作尺寸.mp4 53.69M

4 x86的指令格式-操作码和立即数部分.mp4 329.97M

5 x86的指令格式-ModRM和偏移量部分.mp4 106.34M

6 x86的指令格式-SIB部分.mp4 188.27M

7 x86的指令格式-指令前缀部分.mp4 8.57M

8 处理器的默认操作尺寸和相关指令前缀.mp4 82.00M

9 用伪指令bits生成16位和32位模块.mp4 21.39M

20 存储器的保护

1 话说MOVDS,AX和MOVDS,EAX.mp4 52.23M

10 通过别名来实现段的共用和共享.mp4 38.67M

11 冒泡排序法的基本原理.mp4 36.86M

12 32位操作尺寸下的LOOP指令.mp4 30.93M

13 数据交换指令XCHG.mp4 45.45M

2 修改段寄存器时的保护.mp4 40.86M

3 代码段执行时的保护.mp4 17.85M

4 用向上扩展的段做为栈段.mp4 26.47M

5 向上扩展的段用做栈段时的保护.mp4 15.53M

6 访问普通数据段时的保护.mp4 17.16M

7 内存线性地址的回绕特性.mp4 24.21M

8 用向下扩展的段做为栈段.mp4 24.91M

9 向下扩展的段用做栈段时的保护.mp4 27.59M

21 保护模式程序的动态加载和执行

1 本章的目标和内容提要.mp4 17.81M

10 条件传送指令簇CMOVcc.mp4 57.47M

11 计算以512字节为单位的用户程序总长度.mp4 16.19M

12 内存分配的基本策略和方法.mp4 29.82M

13 内存分配的简易实现过程.mp4 43.55M

14 加载用户程序.mp4 23.37M

15 准备安装用户程序的段描述符.mp4 20.70M

16 用SGDT和MOVZX指令确定GDT的位置.mp4 75.66M

17 安装新描述符并生成选择子.mp4 16.17M

18 安装用户程序的段描述符并回填选择子.mp4 55.51M

19 用户程序的执行和退出.mp4 45.20M

2 内核的结构和加载前的准备工作.mp4 71.17M

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

3 准备为内核的每个段创建和安装描述符.mp4 36.42M

4 段描述符的创建和BSWAP指令.mp4 39.95M

5 进入内核执行.mp4 34.56M

6 进入内核后显示文本信息.mp4 30.74M

7 用CPUID指令取得处理器品牌信息并显示.mp4 57.85M

8 准备加载用户程序.mp4 37.87M

9 预读用户程序并得到它的大小.mp4 18.27M

22 用户程序编程接口及其实现

1 内核与用户程序之间的栈切换问题.mp4 87.59M

10 在虚拟机上验证程序的执行.mp4 18.10M

11 以十六进制形式显示一个双字以及PUSHAD POPAD和XLAT.mp4 58.03M

2 在内核中为用户程序提供编程支持.mp4 72.19M

3 用户程序中的符号地址检索表.mp4 37.36M

4 内核程序中的符号地址检索表.mp4 74.16M

5 串比较指令CMPS.mp4 121.03M

6 串比较的方向和重复前缀.mp4 90.26M

7 使用外循环依次取得用户SALT表的每个条目.mp4 17.52M

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

9 在用户程序内使用内核编程接口读硬盘和显示文本.mp4 30.36M

23 任务和任务的创建

1 任务概念和组成.mp4 11.97M

10 TSS描述符的格式和TSS描述符的创建.mp4 16.02M

11 用带参数的RET指令返回调用者.mp4 30.20M

12 加载任务寄存器TR和局部描述符表寄存器LDTR.mp4 45.93M

13 在虚拟机上验证任务的执行.mp4 58.28M

2 使用任务控制块保存任务基本信息.mp4 157.58M

3 将任务控制块加入任务控制块链表.mp4 34.69M

4 通过栈传递例程参数以及立即数的压栈指令.mp4 68.27M

5 段寄存器的压栈和出栈以及栈的随机访问机制.mp4 20.80M

6 创建任务的局部描述符表LDT.mp4 27.18M

7 在当前任务的LDT中安装描述符.mp4 35.46M

8 LDT描述符的格式和LDT描述符的创建.mp4 109.61M

9 创建任务状态段TSS.mp4 18.67M

24 特权级和特权级保护

1 特权级保护的必要性和特权保护机制.mp4 32.44M

10 一般情况下的请求特权级设置.mp4 21.24M

11 为内核接口例程创建调用门.mp4 187.26M

12 调用门的测试和调用门转移过程.mp4 37.41M

13 通过调用门实施低特权级到高特权级的转移.mp4 132.68M

14 通过调用门转移控制时的栈切换过程.mp4 19.22M

15 通过调用门转移控制并返回的完整描述.mp4 170.97M

16 创建0 1和2特权级的栈并登记在TSS中.mp4 74.87M

17 通过模拟调用门返回进入用户程序执行.mp4 174.96M

2 当前特权级CPL.mp4 12.31M

3 描述符特权级DPL.mp4 31.78M

4 任务公共部分和私有部分的特权级划分.mp4 57.37M

5 依从的代码段.mp4 10.31M

6 门描述符和调用门.mp4 28.08M

7 本章程序说明及特权级检查的时机.mp4 57.28M

8 请求特权级RPL.mp4 52.17M

9 请求特权级调整指令ARPL.mp4 40.49M

25 协同式任务切换

1 多任务和任务切换概述.mp4 28.93M

10 通过JMPFAR执行任务切换的过程.mp4 31.32M

11 内核任务与用户任务轮流执行的过程.mp4 53.14M

12 任务的终止和清理.mp4 42.26M

2 内核任务的创建和IO特权级IOPL.mp4 77.99M

3 IO特权级的修改和POPF指令.mp4 17.04M

4 任务的用户态和内核态.mp4 19.87M

5 IO许可位串和TSS的IO许可位映射区.mp4 28.33M

6 任务切换的方法及内核任务的确立.mp4 38.16M

7 用户任务的创建和初始化.mp4 225.55M

8 简单的任务调度和切换策略.mp4 23.27M

9 遍历TCB链表寻找忙任务和就绪任务.mp4 29.35M

26 中断和异常的处理与抢占式多任务

1 中断和异常概述.mp4 32.21M

10 中断和异常发生时的栈切换过程.mp4 54.61M

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

12 抢占式多任务的执行效果演示.mp4 40.80M

2 保护模式下中断和异常的向量分配.mp4 27.84M

3 中断描述符表 中断门和陷阱门.mp4 70.25M

4 本章程序介绍.mp4 214.10M

5 创建并安装全部的256个中断门.mp4 53.91M

6 为实时时钟中断创建和安装中断门.mp4 23.24M

7 加载中断描述符表寄存器IDTR.mp4 35.24M

8 重新设置8259A主片的中断向量.mp4 41.85M

9 中断和异常发生时的特权级检查.mp4 14.29M

27 分页和动态页面分配

1 保护模式下的段式虚拟内存管理.mp4 31.42M

10 设置控制寄存器CR3和CR0开启分页功能.mp4 15.53M

11 在调试器中观察页目录表和页表.mp4 59.46M

12 准备将内核映射到虚拟内存的高端.mp4 30.08M

13 在分页机制下访问页目录表自身.mp4 23.28M

14 使内核在虚拟内存高端的映射生效.mp4 32.24M

15 为内核任务创建任务控制块TCB.mp4 35.81M

16 为内核任务的TSS分配内存空间.mp4 76.11M

17 处理与线性地址对应的页目录项和页表项.mp4 30.74M

18 根据需要分配物理页并设置页表项.mp4 19.79M

19 物理内存的页面管理和页映射位串.mp4 33.58M

2 每个任务独立的虚拟内存.mp4 16.61M

20 空闲页的搜索和BTS指令.mp4 19.07M

21 空闲页搜索和分配的具体过程.mp4 23.67M

22 确立内核任务并开始创建用户任务.mp4 91.92M

23 用户任务的内存分配策略.mp4 30.79M

24 清空内核任务页目录表的前半部分并刷新TLB.mp4 53.18M

25 为用户任务分配内存并创建LDT.mp4 38.83M

26 用户程序的加载和重定位.mp4 117.22M

27 用户任务页目录表的创建和访问以及INVLPG指令.mp4 49.52M

28 第二个用户任务的创建和分页模式下的任务切换.mp4 35.25M

29 分页模式下多任务切换的演示和调试.mp4 474.29M

3 物理内存的分页以及段到页的拆分.mp4 24.29M

4 处理器的段部件和页部件.mp4 24.22M

5 从线性地址到物理地址的转换过程.mp4 36.59M

6 页目录和页表及其地址转换过程.mp4 33.00M

7 设计内核的页目录和页表.mp4 112.68M

8 页目录项和页表项的组成格式.mp4 14.62M

9 创建内核的页表并初始化低端1MB对应的页表项.mp4 21.07M

28 平坦模型

1 为什么要引入平坦模型及平坦模型的特点.mp4 28.83M

2 在主引导程序中创建平坦模型下的段.mp4 23.43M

3 平坦模型对内核程序分段的影响.mp4 48.57M

4 平坦模型对加载内核程序的影响.mp4 29.46M

5 平坦模型下的内核初始化与内核任务的确立.mp4 51.46M

6 平坦模型下的用户程序结构.mp4 118.73M

7 平坦模型下的用户任务创建.mp4 39.16M

8 在用户任务内动态分配内存.mp4 52.68M

习题解析

第2章.mp4 23.93M

第3章.mp4 15.43M

第4章.mp4 9.07M

第5章.mp4 95.73M

第6章.mp4 60.84M

第7章.mp4 16.62M

第8章.mp4 31.67M

第9章.mp4 16.60M

视频辅助文档.rar 19.52M

视频源码和工具.rar 3.02M

评论0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址