|
楼主 |
发表于 2024-2-26 12:19:37
|
显示全部楼层
《x86汇编语言:从实模式到保护模式》视频目录
章节1:课程说明
课时1课程说明17:45
章节2:汇编语言的前世今生
课时2 引子03:39
课时3 用电来表示数字08:29
课时4 二进制加法机06:12
课时5 具有记忆功能的器件——寄存器08:56
课时6 带寄存器的加法机06:11
课时7 能做四则运算的机器07:50
课时8 机器指令24:12
课时9 内存18:09
课时10 自动计算18:25
课时11 处理器08:36
课时12 汇编语言的诞生10:06
章节3:认识8086处理器
课时13 8086的通用寄存器14:50
课时14 8086的内存访问和字节序08:25
课时15 程序的分段08:27
课时16 程序的重定位难题10:15
课时17 段地址和偏移地址09:19
课时18 8086内存访问的困境05:37
课时19 8086选择段地址的策略07:58
课时20 8086的内存访问过程08:35
课时21 逻辑地址和分段的灵活性15:44
章节4:原书第1版第2章检测点和习题解析
课时22 原书第1版第2章检测点和习题解析09:37
章节5:汇编语言和汇编软件
课时23 创建汇编语言源程序08:06
课时24 Notepad++的下载和使用08:03
课时25 下载和安装编译器NASM06:08
课时26 编译汇编语言源程序11:36
课时27 下载和使用配套源码及工具15:39
课时28 将编译功能集成到Notepad++09:29
章节6:原书第1版第3章检测点和习题解析
课时29 原书第1版第3章检测点和习题解析07:01
章节7:如何执行编译好的程序
课时30 8086加电或者复位时的状态11:20
课时31 8086地址空间的分配15:53
课时32 跳转指令11:32
课时33 硬盘的构造和工作原理14:50
课时34 一切从主引导扇区开始09:42
章节8:虚拟机的安装和使用
课时35 安装VirtualBox虚拟机管理器12:05
课时36 创建VirtualBox虚拟机18:32
课时37 虚拟硬盘简介11:21
课时38 在Windows下创建虚拟硬盘并安装操作系统15:19
课时39 在Linux下创建虚拟硬盘并安装操作系统09:35
章节9:汇编语言程序的调试
课时40 带调试功能的虚拟机05:39
课时41 安装Bochs虚拟机15:36
课时42 为Bochs虚拟机安装虚拟硬盘10:05
课时43 创建主引导扇区程序13:07
课时44 将程序写入硬盘主引导扇区16:59
课时45 用调试器观察程序的执行36:16
章节10:原书第1版第4章检测点和习题解析
课时46 原书第1版第4章检测点和习题解析03:49
章节11:在屏幕上显示文本
课时47 显卡和显存14:53
课时48 准备访问文本模式下的显存06:32
课时49 字符的编码和显示属性24:35
课时50 文本模式下的显存操作12:39
课时51 MOV指令的形式和机器码21:12
课时52 列表文件的创建和使用15:27
课时53 在汇编程序中使用标号11:55
课时54 段间直接绝对跳转指令08:06
课时55 在Bochs中运行和调试写屏程序25:36
课时56 在VirtualBox中运行写屏程序06:15
课时57 主引导扇区执行时的内存布局11:35
课时58 使用标号计算跳转的偏移地址09:45
课时59 使用寄存器的绝对间接近跳转09:06
课时60 使用相对偏移量的短跳转和近跳转19:41
章节12:在屏幕上显示数字
课时61 显示数字的基本原理06:17
课时62 无符号数除法指令div11:57
课时63 在调试器里验证除法操作07:57
课时64 异或指令xor的用法16:00
课时65 加法指令add的用法08:35
课时66 使用标号访问内存数据14:37
课时67 段超越前缀的使用14:30
课时68 显示标号的汇编地址16:20
章节13:阶段性重点内容总结试看
课时69 阶段性重点内容总结12:19
课时70 原书第1版第5章检测点和习题解析24:30
章节14:循环、批量传送和条件转移
课时71 跳过非指令的数据区09:12
课时72 逻辑段地址的重新设定07:50
课时73 串传送指令和标志寄存器12:50
课时74 NASM的$和$$记号16:27
课时75 使用循环指令LOOP分解数位07:25
课时76 基址寻址和INC指令11:06
课时77 数字的显示和DEC指令12:04
课时78 基址变址寻址和条件转移指令17:23
章节15:计算机中的负数
课时79 无符号数和有符号数12:02
课时80 减法指令SUB和求补指令NEG17:17
课时81 计算机如何区分对待无符号数和有符号数17:31
课时82 有符号数除法指令IDIV16:38
课时83 有符号数的符号扩展指令20:20
章节16:阶段性知识总结和拓展试看
课时84 8086的标志寄存器21:23
课时85 条件转移指令和CMP指令15:31
课时86 原书第1版第6章检测点和习题解析29:03
章节17:从1加到100并显示结果
课时87 字符串的定义和累加过程14:50
课时88 栈的原理和使用25:48
课时89 栈在数位分解和显示中的应用14:25
课时90 在调试器里观察栈操作的状态16:11
课时91 进一步认识栈和栈操作的特点09:31
课时92 逻辑或指令OR和逻辑与指令AND20:09
章节18:INTEL8086处理器的寻址方式
课时93 寄存器、立即数和直接寻址10:00
课时94 基址寻址16:48
课时95 变址寻址20:02
课时96 基址变址寻址14:26
课时97 原书第1版第7章检测点和习题解析09:00
章节19:硬盘和显卡的访问与控制
课时98 离开主引导扇区06:15
课时99 给汇编语言程序分段19:57
课时100 控制段内元素的汇编地址11:12
课时101 加载器和用户程序头部段18:51
课时102 加载器的工作流程和常数声明09:06
课时103 确定用户程序的加载位置15:50
课时104 外围设备及其接口11:11
课时105 输入输出端口的访问11:09
课时106 通过硬盘控制器端口读扇区数据25:09
课时107 过程和过程调用22:15
课时108 过程调用和返回的原理09:45
课时109 加载整个用户程序14:35
课时110 用户程序的重定位10:35
课时111 比特位的移动指令21:45
课时112 转到用户程序内部执行07:12
课时113 8086的无条件转移指令16:56
课时114 用户程序的执行过程20:08
课时115 验证加载器加载和执行用户程序的过程17:06
课时116 书中第八章用户程序概述09:21
课时117 与文本显示有关的回车、换行与光标控制24:20
课时118 回车的光标处理和乘法指令MUL23:59
课时119 换行和普通字符的处理过程与滚屏操作21:36
课时120 8086的过程调用方式13:36
课时121 通过RETF指令转到另一个代码段内执行12:50
课时122 在程序中访问不同的数据段07:18
课时123 使用新版FixVhdWr写虚拟硬盘并运行程序19:19
课时124 原书第一版第8章习题解析解答10:45
章节20:中断和动态时钟显示
课时125 中断和硬件中断07:09
课时126 中断控制器简介11:39
课时127 中断号、中断处理过程和中断向量表13:46
课时128 实时时钟、CMOS RAM和BCD编码11:50
课时129 实时时钟芯片的中断信号20:08
课时130 安装0x70号中断处理过程18:02
课时131 启用更新周期结束中断18:36
课时132 用TEST指令等待更新周期结束12:55
课时133 读取BCD码的时间并在屏幕上显示15:35
课时134 用NOT指令反转时间分隔符的颜色06:55
课时135 使用IRET指令从中断过程返回06:35
课时136 用停机指令HLT使处理器进入低功耗状态17:35
课时137 内部中断和软中断10:15
课时138 BIOS中断概述16:32
课时139 使用BIOS功能调用接收并显示键盘输入15:30
课时140 原书第9章检测点和习题解析04:30
章节21:32位x86处理器编程架构
课时141 IA-32架构和保护模式11:21
课时142 寄存器的扩展和扩充08:08
课时143 32位处理器的内存访问概况08:11
课时144 32位处理器的寻址方式概况21:02
课时145 选修-流水线技术06:08
课时146 选修-高速缓存技术07:35
课时147 选修-乱序执行技术08:15
课时148 选修-寄存器重命名技术08:45
课时149 选修-分支目标预测技术07:09
章节22:进入保护模式
课时150 保护模式是要保护什么09:00
课时151 全局描述符表GDT和全局描述符表寄存器GDTR09:19
课时152 准备创建全局描述符表09:45
课时153 描述符的分类05:50
课时154 存储器的段描述符-段的类型和基地址11:12
课时155 存储器的段描述符-段界限及访问控制位15:39
课时156 安装存储器的段描述符10:50
课时157 加载全局描述符表寄存器GDTR09:55
课时158 开启处理器的第21根地址线A2014:37
课时159 通过设置寄存器CR0的PE位进入保护模式12:57
课时160 描述符高速缓存器和保护模式下的内存访问16:07
课时161 在调试器中观察实模式和保护模式的内存访问25:05
章节23:指令的格式及其操作尺寸
课时162 80286的16位保护模式10:05
课时163 16位处理器的指令操作尺寸09:28
课时164 32位处理器的指令操作尺寸20:40
课时165 x86的指令格式-操作码和立即数部分18:38
课时166 x86的指令格式-ModRM和偏移量部分31:55
课时167 x86的指令格式-SIB部分17:17
课时168 x86的指令格式-指令前缀部分05:00
课时169 处理器的默认操作尺寸和相关指令前缀19:09
课时170 用伪指令bits生成16位和32位模块10:00
课时171 描述符和段描述符高速缓存器的D位12:09
课时172 进入保护模式后立即切换到32位模块并使用32位默认操作尺寸19:39
章节24:存储器的保护
课时173 话说MOV DS,AX和MOV DS,EAX19:27
课时174 修改段寄存器时的保护11:26
课时175 代码段执行时的保护07:39
课时176 用向上扩展的段做为栈段13:30
课时177 向上扩展的段用做栈段时的保护08:30
课时178 访问普通数据段时的保护09:39
课时179 内存线性地址的回绕特性15:00
课时180 用向下扩展的段做为栈段13:50
课时181 向下扩展的段用做栈段时的保护13:15
课时182 通过别名来实现段的共用和共享15:00
课时183 冒泡排序法的基本原理08:22
课时184 32位操作尺寸下的LOOP指令09:39
课时185 数据交换指令XCHG17:00
章节25:保护模式程序的动态加载和执行
课时186 本章的目标和内容提要09:10
课时187 内核的结构和加载前的准备工作27:30
课时188 准备为内核的每个段创建和安装描述符15:00
课时189 段描述符的创建和BSWAP指令21:15
课时190 进入内核执行15:00
课时191 进入内核后显示文本信息12:00
课时192 用CPUID指令取得处理器品牌信息并显示17:15
课时193 准备加载用户程序15:00
课时194 预读用户程序并得到它的大小07:15
课时195 条件传送指令簇CMOVcc12:15
课时196 计算以512字节为单位的用户程序总长度08:15
课时197 内存分配的基本策略和方法13:15
课时198 内存分配的简易实现过程10:15
课时199 加载用户程序10:00
课时200 准备安装用户程序的段描述符09:35
课时201 用SGDT和MOVZX指令确定GDT的位置17:35
课时202 安装新描述符并生成选择子08:22
课时203 安装用户程序的段描述符并回填选择子12:00
课时204 用户程序的执行和退出17:00
课时205 在虚拟机上观察内核的加载以及用户程序的执行与退出08:08
章节26:用户程序编程接口及其实现
课时206 内核与用户程序之间的栈切换问题15:00
课时207 在内核中为用户程序提供编程支持12:27
课时208 用户程序中的符号地址检索表16:50
课时209 内核程序中的符号地址检索表13:25
课时210 串比较指令CMPS09:12
课时211 串比较的方向和重复前缀20:33
课时212 使用外循环依次取得用户SALT表的每个条目08:15
课时213 使用内循环依次取得内核SALT表的每个条目并进行比较12:08
课时214 在用户程序内使用内核编程接口读硬盘和显示文本11:45
课时215 在虚拟机上验证程序的执行06:39
课时216 以十六进制形式显示一个双字以及PUSHAD、POPAD和XLAT指令的使用17:05
章节27:任务和任务的创建
课时217 任务:概念和组成07:25
课时218 使用任务控制块保存任务基本信息15:08
课时219 将任务控制块加入任务控制块链表09:25
课时220 通过栈传递例程参数以及立即数的压栈指令09:09
课时221 段寄存器的压栈和出栈以及栈的随机访问机制11:30
课时222 创建任务的局部描述符表LDT11:50
课时223 在当前任务的LDT中安装描述符16:50
课时224 LDT描述符的格式和LDT描述符的创建11:50
课时225 创建任务状态段TSS09:15
课时226 TSS描述符的格式和TSS描述符的创建07:39
课时227 用带参数的RET指令返回调用者11:11
课时228 加载任务寄存器TR和局部描述符表寄存器LDTR18:50
课时229 在虚拟机上验证任务的执行15:35
章节28:特权级和特权级保护
课时230 特权级保护的必要性和特权保护机制12:20
课时231 当前特权级CPL06:46
课时232 描述符特权级DPL13:10
课时233 任务公共部分和私有部分的特权级划分17:00
课时234 依从的代码段06:10
课时235 门描述符和调用门13:58
课时236 本章程序说明及特权级检查的时机09:25
课时237 请求特权级RPL16:16
课时238 请求特权级调整指令ARPL11:55
课时239 一般情况下的请求特权级设置09:19
课时240 为内核接口例程创建调用门21:55
课时241 调用门的测试和调用门转移过程15:39
课时242 通过调用门实施低特权级到高特权级的转移13:35
课时243 通过调用门转移控制时的栈切换过程10:50
课时244 通过调用门转移控制并返回的完整描述12:00
课时245 创建0、1和2特权级的栈并登记在TSS中15:08
课时246 通过模拟调用门返回进入用户程序执行13:39
章节29:协同式任务切换
课时247 多任务和任务切换概述15:00
课时248 内核任务的创建和I/O特权级IOPL14:15
课时249 I/O特权级的修改和POPF指令09:39
课时250 任务的用户态和内核态12:25
课时251 I/O许可位串和TSS的I/O许可位映射区17:00
课时252 任务切换的方法及内核任务的确立16:02
课时253 用户任务的创建和初始化20:09
课时254 简单的任务调度和切换策略11:05
课时255 遍历TCB链表寻找忙任务和就绪任务12:59
课时256 通过JMP FAR执行任务切换的过程11:50
课时257 内核任务与用户任务轮流执行的过程18:50
课时258 任务的终止和清理13:27
章节30:中断和异常的处理与抢占式多任务
课时259 中断和异常概述16:00
课时260 保护模式下中断和异常的向量分配11:39
课时261 中断描述符表、中断门和陷阱门16:30
课时262 本章程序介绍19:25
课时263 创建并安装全部的256个中断门22:30
课时264 为实时时钟中断创建和安装中断门08:30
课时265 加载中断描述符表寄存器IDTR06:55
课时266 重新设置8259A主片的中断向量19:39
课时267 中断和异常发生时的特权级检查06:50
课时268 中断和异常发生时的栈切换过程19:00
课时269 在中断处理过程中实施任务切换(含NOP指令的介绍)19:05
课时270 抢占式多任务的执行效果演示10:05
章节31:分页和动态页面分配试看
课时271 保护模式下的段式虚拟内存管理19:39可试看
课时272 每个任务独立的虚拟内存10:30
课时273 物理内存的分页以及段到页的拆分13:20
课时274 处理器的段部件和页部件14:05
课时275 从线性地址到物理地址的转换过程13:11
课时276 页目录和页表及其地址转换过程16:16
课时277 设计内核的页目录和页表15:00
课时278 页目录项和页表项的组成格式08:05
课时279 创建内核的页表并初始化低端1MB对应的页表项10:25
课时280 设置控制寄存器CR3和CR0开启分页功能08:50
课时281 在调试器中观察页目录表和页表16:50
课时282 准备将内核映射到虚拟内存的高端15:50
课时283 在分页机制下访问页目录表自身11:15
课时284 使内核在虚拟内存高端的映射生效12:50
课时285 为内核任务创建任务控制块TCB14:05
课时286 为内核任务的TSS分配内存空间15:00
课时287 处理与线性地址对应的页目录项和页表项15:28
课时288 根据需要分配物理页并设置页表项06:15
课时289 物理内存的页面管理和页映射位串15:25
课时290 空闲页的搜索和BTS指令09:22
课时291 空闲页搜索和分配的具体过程10:15
课时292 确立内核任务并开始创建用户任务15:50
课时293 用户任务的内存分配策略16:39
课时294 清空内核任务页目录表的前半部分并刷新TLB15:00
课时295 为用户任务分配内存并创建LDT12:30
课时296 用户程序的加载和重定位15:35
课时297 用户任务页目录表的创建和访问以及INVLPG指令23:12
课时298 第二个用户任务的创建和分页模式下的任务切换12:22
课时299 分页模式下多任务切换的演示和调试27:30
章节32:平坦模型
课时300 为什么要引入平坦模型及平坦模型的特点16:00
课时301 在主引导程序中创建平坦模型下的段09:45
课时302 平坦模型对内核程序分段的影响16:45
课时303 平坦模型对加载内核程序的影响11:35
课时304 平坦模型下的内核初始化与内核任务的确立17:35
课时305 平坦模型下的用户程序结构15:35
课时306 平坦模型下的用户任务创建05:30
课时307 在用户任务内动态分配内存08:55
课时308 平坦模型下的多任务切换演示与调试
|
|