|
046-x64汇编语言:从实模式到保护模式, U1 |& q& @' S4 F
├──{01}--课程说明 $ p" X# s' N( U3 ~" y9 [$ g
| └──[1.1]--课程说明_ev.mp4 51.62M; {) r/ }; Q. }$ U
├──{02}--汇编语言的前世今生
* c. w }- R0 _1 O/ o| ├──[2.10]--处理器_ev.mp4 19.65M
% S5 P8 d) V/ q2 C" ~, q% v| ├──[2.11]--汇编语言的诞生_ev.mp4 20.71M7 a6 f6 e+ H! j q4 S* q
| ├──[2.1]--引子_ev.mp4 7.19M4 T- \% |8 C6 S- u+ h
| ├──[2.2]--用电来表示数字_ev.mp4 10.88M9 p4 W9 M( N# ~- B
| ├──[2.3]--二进制加法机_ev.mp4 8.86M6 l! _% e/ T8 l9 i. p z' h& R
| ├──[2.4]--具有记忆功能的器件——寄存器_ev.mp4 13.06M
$ ~( E& _1 P, u t; u( ^, u| ├──[2.5]--带寄存器的加法机_ev.mp4 8.44M
6 @4 Z, O* t1 Z| ├──[2.6]--能做四则运算的机器_ev.mp4 13.09M
3 ~2 F, s% V) u( ?$ C. N- C' b| ├──[2.7]--机器指令_ev.mp4 43.36M
! L! \$ Z' d8 |' D; U| ├──[2.8]--内存_ev.mp4 40.06M
! n: i$ @0 N. c. P9 N| └──[2.9]--自动计算_ev.mp4 30.04M
" R: K- u+ R5 }2 J4 T├──{03}--认识8086处理器 , k$ ]. I/ R0 `8 b6 L- d; c% I
| ├──[3.1]--8086的通用寄存器_ev.mp4 23.15M
) R! x, _1 {9 a6 [; t( P/ K& P| ├──[3.2]--8086的内存访问和字节序_ev.mp4 12.85M1 R; _0 r q' W9 D$ P
| ├──[3.3]--程序的分段_ev.mp4 11.24M/ f& A. U% C7 R) l9 e+ b
| ├──[3.4]--程序的重定位难题_ev.mp4 14.17M
" l& R# K. O2 F# l: S& M* q4 z| ├──[3.5]--段地址和偏移地址_ev.mp4 13.09M/ x1 E. N# t* T& J# Z- S
| ├──[3.6]--8086内存访问的困境_ev.mp4 8.19M! C+ B0 Y0 D% t% A2 L& D
| ├──[3.7]--8086选择段地址的策略_ev.mp4 21.66M
8 d o& O* V% V- {; U( V) ^| ├──[3.8]--8086的内存访问过程_ev.mp4 13.82M: z; _ n2 I; @2 N& x8 x
| └──[3.9]--逻辑地址和分段的灵活性_ev.mp4 25.43M* ^! g, K: j" h+ i( s
├──{04}--原书第1版第2章检测点和习题解析
: y. t9 j! w% h e| └──[4.1]--原书第1版第2章检测点和习题解析_ev.mp4 22.29M
d0 I' Q8 {2 O7 u& l- @├──{05}--汇编语言和汇编软件 / O T3 r& a: V* `
| ├──[5.1]--创建汇编语言源程序_ev.mp4 23.11M1 {) ]9 r* f. U9 B. s# \
| ├──[5.2]--Notepad++的下载和使用_ev.mp4 23.37M' t) \9 @8 Z8 N* B" s
| ├──[5.3]--下载和安装编译器NASM_ev.mp4 17.45M
) x, I9 x( J4 P1 O9 b| ├──[5.4]--编译汇编语言源程序_ev.mp4 32.23M% ~8 K& q" S( S" W' `6 x& [
| ├──[5.5]--下载和使用配套源码及工具_ev.mp4 50.67M$ b4 i5 _) y" E( A3 a p
| └──[5.6]--将编译功能集成到Notepad++_ev.mp4 18.63M
$ R. n/ X( W/ O3 f" V├──{06}--原书第1版第3章检测点和习题解析 ) b0 S B$ p6 x; l
| └──[6.1]--原书第1版第3章检测点和习题解析_ev.mp4 13.70M
+ Q$ ^, V2 C2 O! C9 |# n├──{07}--如何执行编译好的程序 0 c0 n2 @' K+ G+ V& h& [
| ├──[7.1]--8086加电或者复位时的状态_ev.mp4 24.52M
8 ] M3 ~3 \/ P6 F* } {| ├──[7.2]--8086地址空间的分配_ev.mp4 32.36M
% c( _/ v3 P. d% a: |9 j9 a| ├──[7.3]--跳转指令_ev.mp4 16.69M
3 H+ [$ s" S% c* J| ├──[7.4]--硬盘的构造和工作原理_ev.mp4 23.18M
' @: T8 Y( k: ?& J+ a$ {; _| └──[7.5]--一切从主引导扇区开始_ev.mp4 22.70M2 W; m- E7 ?5 X2 |
├──{08}--虚拟机的安装和使用 5 H7 o x5 p, ]$ w$ v, J- |2 \3 A
| ├──[8.1]--安装VirtualBox虚拟机管理器_ev.mp4 31.70M
4 J5 n, n5 l2 J3 J) _1 s! O| ├──[8.2]--创建VirtualBox虚拟机_ev.mp4 96.91M8 C0 U8 a O/ w! i7 t
| ├──[8.3]--虚拟硬盘简介_ev.mp4 44.27M
9 |4 f) m' n! N3 \4 a| ├──[8.4]--在Windows下创建虚拟硬盘并安装操作系统_ev.mp4 78.68M, d5 u ^# n0 _; o7 t
| └──[8.5]--在Linux下创建虚拟硬盘并安装操作系统_ev.mp4 21.98M8 w5 c: u: |* u, T) A/ n( q
├──{09}--汇编语言程序的调试 . @8 b/ b' [% {' q
| ├──[9.1]--带调试功能的虚拟机_ev.mp4 11.29M. d7 ^' e" R0 d# C i
| ├──[9.2]--安装Bochs虚拟机_ev.mp4 35.99M$ n" t# J% J' b& p8 [3 Q3 T
| ├──[9.3]--为Bochs虚拟机安装虚拟硬盘_ev.mp4 22.23M2 `* d, d0 f9 ^' o' u4 O
| ├──[9.4]--创建主引导扇区程序_ev.mp4 33.29M2 e: s e. l. | N4 r
| ├──[9.5]--将程序写入硬盘主引导扇区_ev.mp4 68.72M
( ]4 i) M' D8 X: _; A: J. @& f' S| └──[9.6]--用调试器观察程序的执行_ev.mp4 132.84M
; Q) \9 { Y- n/ M C3 L├──{10}--原书第1版第4章检测点和习题解析 , j2 Q' h* m' O1 S$ o! ~& l
| └──[10.1]--原书第1版第4章检测点和习题解析_ev.mp4 7.86M
" Y( v/ n; V! H; q6 |9 u/ d; n├──{11}--在屏幕上显示文本 6 r3 Y) E8 B6 N$ j0 h. ?. O8 J
| ├──[11.10]--在VirtualBox中运行写屏程序_ev.mp4 28.35M3 q- o( _, b/ L3 {, w. K
| ├──[11.11]--主引导扇区执行时的内存布局_ev.mp4 43.54M1 u: ^; E5 H c) ^) T/ J
| ├──[11.12]--使用标号计算跳转的偏移地址_ev.mp4 31.37M
! p) A7 a' n/ l+ P| ├──[11.13]--使用寄存器的绝对间接近跳转_ev.mp4 32.43M
9 b/ z: o S% _$ R| ├──[11.14]--使用相对偏移量的短跳转和近跳转_ev.mp4 49.92M5 m1 W, m1 `% _' z$ t. K
| ├──[11.1]--显卡和显存_ev.mp4 37.67M
7 { K! z" U6 v| ├──[11.2]--准备访问文本模式下的显存_ev.mp4 22.99M; j9 V7 v$ f; x7 \- J
| ├──[11.3]--字符的编码和显示属性_ev.mp4 37.42M+ C b5 Z1 L& Y5 L8 ]* W
| ├──[11.4]--文本模式下的显存操作_ev.mp4 25.97M+ k$ m" V$ ? J5 @# E
| ├──[11.5]--MOV指令的形式和机器码_ev.mp4 64.09M
3 D1 O l! m1 G| ├──[11.6]--列表文件的创建和使用_ev.mp4 42.44M
/ Y! l$ r* @7 ^. F, z. q8 R| ├──[11.7]--在汇编程序中使用标号_ev.mp4 26.68M1 h" ]7 Z* h( f4 v! }- H; O. S
| ├──[11.8]--段间直接绝对跳转指令_ev.mp4 21.28M2 o" |4 S! ^0 V5 V; c
| └──[11.9]--在Bochs中运行和调试写屏程序_ev.mp4 130.04M
$ S- F% E& ~3 V" g6 _├──{12}--在屏幕上显示数字 . }7 k8 |$ h3 h, W; \: j2 ?; I
| ├──[12.1]--显示数字的基本原理_ev.mp4 23.05M# k0 ]' J$ H; V; ~+ D' C
| ├──[12.2]--无符号数除法指令div_ev.mp4 47.80M
2 X& D9 ?) n& \) I| ├──[12.3]--在调试器里验证除法操作_ev.mp4 20.87M5 _) J/ {* ~! s+ k1 k, N( l! r
| ├──[12.4]--异或指令xor的用法_ev.mp4 60.69M
( }8 Q+ X% w7 j5 `- q| ├──[12.5]--加法指令add的用法_ev.mp4 30.20M' P# C: T0 h& q1 y8 o5 s+ Q: J
| ├──[12.6]--使用标号访问内存数据_ev.mp4 23.46M
W. b2 x0 n5 H$ J+ q0 W' Q1 ~| ├──[12.7]--段超越前缀的使用_ev.mp4 41.56M
M U3 `) h N! X6 {' n' g| └──[12.8]--显示标号的汇编地址_ev.mp4 42.12M
0 r' d2 Q0 O8 V2 L' T$ h├──{13}--阶段性重点内容总结 7 J, q) ~4 G( \5 s* _2 t
| ├──[13.1]--阶段性重点内容总结_ev.mp4 40.49M, Y w! g. v) v' @ Q
| └──[13.2]--原书第1版第5章检测点和习题解析_ev.mp4 49.95M
0 o% |: ?4 ^' g' F' \6 p, m I├──{14}--循环、批量传送和条件转移 ; a& O$ l c7 h; c
| ├──[14.1]--跳过非指令的数据区_ev.mp4 14.68M
# j8 e+ r3 y; A3 b| ├──[14.2]--逻辑段地址的重新设定_ev.mp4 11.44M
- G: L; n+ O( s0 }; d, s x| ├──[14.3]--串传送指令和标志寄存器_ev.mp4 26.08M4 a: j- w/ r% V# ?- W" G( L% g7 O
| ├──[14.4]--NASM的$和$$记号_ev.mp4 38.28M
3 ]# l4 f; L3 A7 M# {: L8 \6 u| ├──[14.5]--使用循环指令LOOP分解数位_ev.mp4 18.10M
; M- j7 @! r; e| ├──[14.6]--基址寻址和INC指令_ev.mp4 33.57M
& G* _; E3 s+ D+ c2 I0 A! o S| ├──[14.7]--数字的显示和DEC指令_ev.mp4 29.03M+ s; l7 A* A8 q5 r1 b
| └──[14.8]--基址变址寻址和条件转移指令_ev.mp4 52.21M
( _4 e8 y' z; B- j% Q9 e7 M├──{15}--计算机中的负数 ; j2 {; J% I; A
| ├──[15.1]--无符号数和有符号数_ev.mp4 43.77M
% o( ^% l% ^: P5 K9 H+ ^& w| ├──[15.2]--减法指令SUB和求补指令NEG_ev.mp4 62.16M
/ B5 U8 f3 y- F0 j' J| ├──[15.3]--计算机如何区分对待无符号数和有符号数_ev.mp4 39.23M
4 s7 x, C( @4 t2 `| ├──[15.4]--有符号数除法指令IDIV_ev.mp4 57.27M
+ j& l t/ \6 j6 @: f7 U- J| └──[15.5]--有符号数的符号扩展指令_ev.mp4 66.40M
' {4 _5 f0 [, D3 F# ^3 e├──{16}--阶段性知识总结和拓展
* o8 {, m" q5 l% ^" E| ├──[16.1]--8086的标志寄存器_ev.mp4 41.81M1 D* O0 ]# c- [4 u
| ├──[16.2]--条件转移指令和CMP指令_ev.mp4 53.99M
7 C9 |) Y/ m2 @| └──[16.3]--原书第1版第6章检测点和习题解析_ev.mp4 52.59M
8 A" ~+ q. h& [ |0 w% x( W. t├──{17}--从1加到100并显示结果
8 U/ n$ e( |# R% P3 w| ├──[17.1]--字符串的定义和累加过程_ev.mp4 29.77M1 {. ~9 C9 E1 q5 v& s
| ├──[17.2]--栈的原理和使用_ev.mp4 90.68M
$ o2 Q# Y- B* v0 G| ├──[17.3]--栈在数位分解和显示中的应用_ev.mp4 23.34M
& y; |0 g" d0 B3 L8 \| ├──[17.4]--在调试器里观察栈操作的状态_ev.mp4 44.13M
' ~4 ^$ G) g4 S/ Z4 V* t| ├──[17.5]--进一步认识栈和栈操作的特点_ev.mp4 30.35M h4 }2 t5 n4 h |! Y/ M
| └──[17.6]--逻辑或指令OR和逻辑与指令AND_ev.mp4 71.25M
! \- d, p2 @1 [1 i├──{18}--INTEL8086处理器的寻址方式
+ w% e7 f( X1 V+ x! g, v| ├──[18.1]--寄存器、立即数和直接寻址_ev.mp4 35.08M
4 H1 f) m3 P5 {6 g+ V| ├──[18.2]--基址寻址_ev.mp4 61.43M7 A) u* B& Q7 ^( x5 `
| ├──[18.3]--变址寻址_ev.mp4 43.94M$ O1 ^! X9 L2 K4 u# m( s
| ├──[18.4]--基址变址寻址_ev.mp4 39.89M
6 y5 U. W* j Y| └──[18.5]--原书第1版第7章检测点和习题解析_ev.mp4 14.37M
9 R+ u0 Z( J- X4 ~7 C/ [4 Y├──{19}--硬盘和显卡的访问与控制
2 T" ]1 W4 {+ t! b$ Q| ├──[19.10]--过程和过程调用_ev.mp4 42.31M
. E& k. t0 G8 [! U| ├──[19.11]--过程调用和返回的原理_ev.mp4 26.04M g3 e4 o5 B2 d7 H; n* M
| ├──[19.12]--加载整个用户程序_ev.mp4 25.53M
, Z. _ j2 X3 J- v5 C| ├──[19.13]--用户程序的重定位_ev.mp4 23.44M: U' @7 X% x& ?/ [- t
| ├──[19.14]--比特位的移动指令_ev.mp4 67.20M% _1 K+ H" _$ q6 ]6 e$ x3 ^9 \ T. [
| ├──[19.15]--转到用户程序内部执行_ev.mp4 13.82M4 B( q& z5 t+ E8 N
| ├──[19.16]--8086的无条件转移指令_ev.mp4 67.38M, J( r/ E: t* Z7 g
| ├──[19.17]--用户程序的执行过程_ev.mp4 40.98M
8 \1 R; T6 k5 y# y9 [4 s7 k| ├──[19.18]--验证加载器加载和执行用户程序的过程_ev.mp4 48.20M$ H3 e& |& K; |, g. w9 [, S
| ├──[19.19]--书中第八章用户程序概述_ev.mp4 23.16M$ S' }/ U( z0 B; _
| ├──[19.1]--离开主引导扇区_ev.mp4 16.55M
1 v- E; c) p9 \& O: r2 G| ├──[19.20]--与文本显示有关的回车、换行与光标控制_ev.mp4 45.52M6 ]; D" o' {4 b, \% l# M; m
| ├──[19.21]--回车的光标处理和乘法指令MUL_ev.mp4 82.50M8 k+ _6 \% i6 G
| ├──[19.22]--换行和普通字符的处理过程与滚屏操作_ev.mp4 47.48M, q) ] `0 [/ I$ t6 n. z
| ├──[19.23]--8086的过程调用方式_ev.mp4 48.45M" y8 \4 M. y8 C& o7 K& p# ]
| ├──[19.24]--通过RETF指令转到另一个代码段内执行_ev.mp4 31.66M1 x7 N6 ]: n$ L4 l: e/ x
| ├──[19.25]--在程序中访问不同的数据段_ev.mp4 19.51M
* O6 r) z Q4 |$ w: |8 R' L( [| ├──[19.26]--使用新版FixVhdWr写虚拟硬盘并运行程序_ev.mp4 61.09M
/ l2 E0 d6 y6 _ h2 u6 C" D| ├──[19.27]--原书第一版第8章习题解析解答_ev.mp4 27.65M
0 A _* v1 y5 }| ├──[19.2]--给汇编语言程序分段_ev.mp4 30.32M
$ [7 P7 }/ S% Y4 a| ├──[19.3]--控制段内元素的汇编地址_ev.mp4 24.19M+ _1 k9 E5 }, ~5 w: A4 ^
| ├──[19.4]--加载器和用户程序头部段_ev.mp4 36.90M
' C0 ^2 u: Z& l8 e| ├──[19.5]--加载器的工作流程和常数声明_ev.mp4 21.87M" J5 o3 C& o i' `
| ├──[19.6]--确定用户程序的加载位置_ev.mp4 38.09M7 h6 {, J0 X, I; @8 u+ d
| ├──[19.7]--外围设备及其接口_ev.mp4 20.49M( A6 `. j; N* x6 ^1 N
| ├──[19.8]--输入输出端口的访问_ev.mp4 33.64M# }' ?2 ~+ E! c+ a0 {3 N* w
| └──[19.9]--通过硬盘控制器端口读扇区数据_ev.mp4 51.80M" i1 }3 I% F# @3 [: c8 k
├──{20}--中断和动态时钟显示 & L& l3 L. }# n [5 I
| ├──[20.10]--用NOT指令反转时间分隔符的颜色_ev.mp4 18.33M
/ H- w8 e0 X- G3 D| ├──[20.11]--使用IRET指令从中断过程返回_ev.mp4 10.94M1 [/ U1 Z/ D! @+ w" F o5 i
| ├──[20.12]--用停机指令HLT使处理器进入低功耗状态_ev.mp4 46.79M6 A7 D4 w8 e( S2 _( d/ O3 V
| ├──[20.13]--内部中断和软中断_ev.mp4 31.83M% W4 S, W% X# Q# J- G5 ~
| ├──[20.14]--BIOS中断概述_ev.mp4 62.75M( T5 L" P% l: c; `" |( V
| ├──[20.15]--使用BIOS功能调用接收并显示键盘输入_ev.mp4 40.31M
2 W' a6 Y. ]" ?4 j; K* m" k4 r| ├──[20.16]--原书第9章检测点和习题解析_ev.mp4 13.46M2 |' L# {2 C/ Y. W3 p; \
| ├──[20.1]--中断和硬件中断_ev.mp4 15.32M) M% d% x1 r# c
| ├──[20.2]--中断控制器简介_ev.mp4 17.53M8 J! c+ d6 T# ]6 h
| ├──[20.3]--中断号、中断处理过程和中断向量表_ev.mp4 44.68M8 Y: L8 q8 T/ j+ ^! h
| ├──[20.4]--实时时钟、CMOSRAM和BCD编码_ev.mp4 33.50M
9 d1 q& w" |- H| ├──[20.5]--实时时钟芯片的中断信号_ev.mp4 49.02M
$ ^6 x" t3 H; t1 |% U& ^7 C0 ^) u| ├──[20.6]--安装0x70号中断处理过程_ev.mp4 41.34M6 h! ^0 V* H4 `2 L2 t$ n: S e
| ├──[20.7]--启用更新周期结束中断_ev.mp4 33.22M
- e8 u0 q6 f/ Q7 b| ├──[20.8]--用TEST指令等待更新周期结束_ev.mp4 35.73M4 J' L8 b. \( b7 I/ x# y; Q
| └──[20.9]--读取BCD码的时间并在屏幕上显示_ev.mp4 37.20M
o, }9 B" E% y# r% o. X6 {) \5 L├──{21}--32位x86处理器编程架构 " l0 w' J+ G- q
| ├──[21.1]--IA-32架构和保护模式_ev.mp4 41.24M- P, D) d# t& ^. R5 T7 S7 U- d
| ├──[21.2]--寄存器的扩展和扩充_ev.mp4 24.35M, g: w% p1 e/ e6 F3 D: ]' j
| ├──[21.3]--32位处理器的内存访问概况_ev.mp4 27.96M; y2 L; [$ a7 ]9 a& j9 j
| ├──[21.4]--32位处理器的寻址方式概况_ev.mp4 44.36M: i) _. f4 f6 `) V
| ├──[21.5]--选修-流水线技术_ev.mp4 14.74M6 R+ b! J7 R( I, ~1 d
| ├──[21.6]--选修-高速缓存技术_ev.mp4 11.19M. i# K/ D9 Q9 `% k6 b/ S
| ├──[21.7]--选修-乱序执行技术_ev.mp4 28.93M0 C& e1 s% c0 p
| ├──[21.8]--选修-寄存器重命名技术_ev.mp4 30.59M5 W+ I- z% F' y2 D+ t: v9 z' ?! D
| └──[21.9]--选修-分支目标预测技术_ev.mp4 24.48M
! ^% [$ X. I( Y4 v( y, H& ?├──{22}--进入保护模式 # \' F' s0 j9 E9 ]# Z, H& n" W
| ├──[22.10]--通过设置寄存器CR0的PE位进入保护模式_ev.mp4 31.83M
; @! V. ~. H" h1 T| ├──[22.11]--描述符高速缓存器和保护模式下的内存访问_ev.mp4 26.03M, z% p! ?! w! n' c" Q( e$ M, C
| ├──[22.12]--在调试器中观察实模式和保护模式的内存访问_ev.mp4 69.90M8 K6 P0 t3 {* x& {! z
| ├──[22.1]--保护模式是要保护什么_ev.mp4 23.57M* a1 S1 ]# |6 X0 E! H* n9 h# P
| ├──[22.2]--全局描述符表GDT和全局描述符表寄存器GDTR_ev.mp4 15.34M' M n, \5 T3 e# q. ]0 R
| ├──[22.3]--准备创建全局描述符表_ev.mp4 17.44M
( D: ~' B0 W: F* L5 u# o| ├──[22.4]--描述符的分类_ev.mp4 14.86M* c- K6 W0 h: ^
| ├──[22.5]--存储器的段描述符-段的类型和基地址_ev.mp4 16.01M
* h h9 |6 M4 r* J: Q8 m: W| ├──[22.6]--存储器的段描述符-段界限及访问控制位_ev.mp4 22.16M
# [1 K4 @/ g( @% v| ├──[22.7]--安装存储器的段描述符_ev.mp4 18.14M, Z- ?& l$ M* i9 {9 g
| ├──[22.8]--加载全局描述符表寄存器GDTR_ev.mp4 16.30M. B0 s; z' I S) e8 s, e0 N
| └──[22.9]--开启处理器的第21根地址线A20_ev.mp4 31.10M
2 X+ q( u# p; @├──{23}--指令的格式及其操作尺寸 : O E6 b& Y* d+ R
| ├──[23.10]--描述符和段描述符高速缓存器的D位_ev.mp4 32.81M
0 d6 A% U$ X1 ^$ Z1 E a g| ├──[23.11]--进入保护模式后立即切换到32位模块并使用32位默认操作尺寸_ev.mp4 49.68M
+ N4 F, p+ l, B) i# l2 Y| ├──[23.1]--80286的16位保护模式_ev.mp4 20.84M( ^& f% X: \" Y0 a
| ├──[23.2]--16位处理器的指令操作尺寸_ev.mp4 13.76M
# k2 z: d( j) M5 l( K" S| ├──[23.3]--32位处理器的指令操作尺寸_ev.mp4 46.61M5 B" O9 O3 Y( R" v6 ~7 G
| ├──[23.4]--x86的指令格式-操作码和立即数部分_ev.mp4 55.22M# {- Q+ [" Y- E+ z
| ├──[23.5]--x86的指令格式-ModRM和偏移量部分_ev.mp4 91.61M x8 U' Z- c+ I
| ├──[23.6]--x86的指令格式-SIB部分_ev.mp4 47.93M
* B- R1 A" j0 x- L| ├──[23.7]--x86的指令格式-指令前缀部分_ev.mp4 7.14M
8 A7 \- r; U' }3 p1 h| ├──[23.8]--处理器的默认操作尺寸和相关指令前缀_ev.mp4 38.82M
& W7 s8 Y: x% y$ B| └──[23.9]--用伪指令bits生成16位和32位模块_ev.mp4 18.26M2 _2 l, f+ i. X/ o) c" E
├──{24}--存储器的保护
3 x) M6 g3 I5 @5 a9 B# [: K1 r| ├──[24.10]--通过别名来实现段的共用和共享_ev.mp4 34.56M/ F: q4 U( P- Z3 q+ G. _+ k
| ├──[24.11]--冒泡排序法的基本原理_ev.mp4 15.51M" d( n3 V* l m; l" G- i9 a5 g
| ├──[24.12]--32位操作尺寸下的LOOP指令_ev.mp4 15.98M6 e( C, Y. \& i$ \
| ├──[24.13]--数据交换指令XCHG_ev.mp4 41.84M' `: J9 I0 X3 O7 h% O, U
| ├──[24.1]--话说MOVDS,AX和MOVDS,EAX_ev.mp4 46.38M
! c0 T. a: l/ q3 U" ~ h/ T| ├──[24.2]--修改段寄存器时的保护_ev.mp4 18.12M
) a0 R N9 S2 r| ├──[24.3]--代码段执行时的保护_ev.mp4 16.23M
$ @' M* v& ~* {0 j| ├──[24.4]--用向上扩展的段做为栈段_ev.mp4 23.08M
3 {# k9 r) W# R0 ?6 m# ~| ├──[24.5]--向上扩展的段用做栈段时的保护_ev.mp4 13.23M
6 N" t& O6 {6 ]3 d0 o| ├──[24.6]--访问普通数据段时的保护_ev.mp4 14.69M) ^; G1 d2 N" m* Y+ g4 e( u8 G
| ├──[24.7]--内存线性地址的回绕特性_ev.mp4 20.26M
- m5 e6 {2 m: |' A6 Z7 }+ u| ├──[24.8]--用向下扩展的段做为栈段_ev.mp4 21.71M* y8 b% Z8 L2 C
| └──[24.9]--向下扩展的段用做栈段时的保护_ev.mp4 23.70M" J. z& L: B' m
├──{25}--保护模式程序的动态加载和执行
7 Y- ~- W8 K( n3 ] `. x6 h, m| ├──[25.10]--条件传送指令簇CMOVcc_ev.mp4 43.90M
0 T' B( @7 g6 Z% N& @0 P0 b/ m| ├──[25.11]--计算以512字节为单位的用户程序总长度_ev.mp4 13.88M
2 O! j" x6 v' F2 Q6 z| ├──[25.12]--内存分配的基本策略和方法_ev.mp4 25.86M' I! C, g! H7 s, c8 Y
| ├──[25.13]--内存分配的简易实现过程_ev.mp4 19.69M
L9 P$ s% ]2 D* M7 B" T4 Z+ u| ├──[25.14]--加载用户程序_ev.mp4 20.55M0 j3 d7 z* |9 F8 R1 q ~) I" D
| ├──[25.15]--准备安装用户程序的段描述符_ev.mp4 17.96M
# p: k: j# s7 [, u0 P# F, c1 k" c| ├──[25.16]--用SGDT和MOVZX指令确定GDT的位置_ev.mp4 58.06M
$ W' s' V. q+ r" J| ├──[25.17]--安装新描述符并生成选择子_ev.mp4 13.82M1 T; `' @) n4 D. U
| ├──[25.18]--安装用户程序的段描述符并回填选择子_ev.mp4 20.55M2 U3 |8 a6 k5 c) V2 |5 l* I+ Q4 `% ^7 {
| ├──[25.19]--用户程序的执行和退出_ev.mp4 41.10M, t, ?; O" s; t; a- s
| ├──[25.1]--本章的目标和内容提要_ev.mp4 15.64M8 ~/ y0 [. i5 j) ?5 M% M$ O
| ├──[25.20]--在虚拟机上观察内核的加载以及用户程序的执行与退出_ev.mp4 22.42M
4 E5 f2 s& X4 t2 o8 C8 c| ├──[25.2]--内核的结构和加载前的准备工作_ev.mp4 63.18M
6 \, Y" Q! T. j. w2 X# E: W. p8 i| ├──[25.3]--准备为内核的每个段创建和安装描述符_ev.mp4 32.07M
0 `( a2 G4 E1 T- @4 j) W8 g| ├──[25.4]--段描述符的创建和BSWAP指令_ev.mp4 34.51M
" @9 G+ K" s% J$ }& d) @ t7 w% g| ├──[25.5]--进入内核执行_ev.mp4 29.99M
7 U W; o! x# _; I- Q3 W| ├──[25.6]--进入内核后显示文本信息_ev.mp4 28.54M) w* X3 A4 i1 j5 E
| ├──[25.7]--用CPUID指令取得处理器品牌信息并显示_ev.mp4 45.79M
. K. Q' N- A* f0 D; A" f1 w3 X| ├──[25.8]--准备加载用户程序_ev.mp4 33.71M
( ?% K S( k/ s) v| └──[25.9]--预读用户程序并得到它的大小_ev.mp4 16.49M
|6 m: D: @" a+ b# h! R6 x├──{26}--用户程序编程接口及其实现
8 Y' |7 t# u" c. l6 h' b2 P% ~; Z| ├──[26.10]--在虚拟机上验证程序的执行_ev.mp4 15.63M
. J S" }/ C9 x| ├──[26.11]--以十六进制形式显示一个双字以及PUSHAD、POPAD和XLAT_ev.mp4 50.16M) X! j F. P5 |. j
| ├──[26.1]--内核与用户程序之间的栈切换问题_ev.mp4 27.99M
0 _% \5 u+ L! L s: z# r| ├──[26.2]--在内核中为用户程序提供编程支持_ev.mp4 23.61M! b+ R& V( R3 R$ Q: y, K/ \; x
| ├──[26.3]--用户程序中的符号地址检索表_ev.mp4 32.32M& N/ d1 m5 ]# }& I" B) t
| ├──[26.4]--内核程序中的符号地址检索表_ev.mp4 29.46M2 Q' j6 U' A7 g4 r
| ├──[26.5]--串比较指令CMPS_ev.mp4 27.03M
1 t( I7 E% r. c6 \% J| ├──[26.6]--串比较的方向和重复前缀_ev.mp4 69.16M
9 Z7 y( l1 D# h) I. a/ Q| ├──[26.7]--使用外循环依次取得用户SALT表的每个条目_ev.mp4 15.13M
9 m1 h2 {5 n! N. G$ ^" P| ├──[26.8]--使用内循环依次取得内核SALT表的每个条目并进行比较_ev.mp4 20.49M% w# F$ u8 t7 C* V9 I6 v4 ?
| └──[26.9]--在用户程序内使用内核编程接口读硬盘和显示文本_ev.mp4 26.83M T# O6 Y- h. Y, G
├──{27}--任务和任务的创建
7 a' b- Y* U5 J| ├──[27.10]--TSS描述符的格式和TSS描述符的创建_ev.mp4 12.95M$ y2 A! I c+ h) A( W* b. c' g
| ├──[27.11]--用带参数的RET指令返回调用者_ev.mp4 26.99M
0 t/ f$ `- g0 q. i, r2 w3 \| ├──[27.12]--加载任务寄存器TR和局部描述符表寄存器LDTR_ev.mp4 38.08M
4 K; e* c1 c' X" H% I# y2 f| ├──[27.13]--在虚拟机上验证任务的执行_ev.mp4 48.88M
* g! o5 T6 K. |$ Y$ b: L| ├──[27.1]--任务:概念和组成_ev.mp4 10.23M
& P/ }* N4 ]" A| ├──[27.2]--使用任务控制块保存任务基本信息_ev.mp4 36.04M
6 I$ x6 r* o" E5 L6 }* g| ├──[27.3]--将任务控制块加入任务控制块链表_ev.mp4 16.06M* X0 A4 C7 K( m( U8 w8 N( C5 U, ~2 g
| ├──[27.4]--通过栈传递例程参数以及立即数的压栈指令_ev.mp4 20.24M. U" S/ c+ V) ?9 C* L0 l; p X6 n2 }
| ├──[27.5]--段寄存器的压栈和出栈以及栈的随机访问机制_ev.mp4 17.83M
y! x* `& x! x7 d9 T| ├──[27.6]--创建任务的局部描述符表LDT_ev.mp4 22.51M: x4 o7 w' U L" v7 i( [8 W) U
| ├──[27.7]--在当前任务的LDT中安装描述符_ev.mp4 31.00M
- t9 l; d$ N" c) |) o$ d6 e! D5 M( [| ├──[27.8]--LDT描述符的格式和LDT描述符的创建_ev.mp4 30.74M2 W/ |9 I3 E, r; U
| └──[27.9]--创建任务状态段TSS_ev.mp4 16.02M2 S3 S; ~. F) ~; s+ z4 ]" [& V
├──{28}--特权级和特权级保护
6 S a _# _- Z% u) v6 h| ├──[28.10]--一般情况下的请求特权级设置_ev.mp4 18.59M) q+ Q/ {6 h$ x3 e) C
| ├──[28.11]--为内核接口例程创建调用门_ev.mp4 58.30M
" j+ B) T( ~, \& \; w& x| ├──[28.12]--调用门的测试和调用门转移过程_ev.mp4 33.76M# Q9 s( ^) @) ]' G1 m! d$ w- U
| ├──[28.13]--通过调用门实施低特权级到高特权级的转移_ev.mp4 37.51M) M% }: `8 l; j; Z/ b3 g2 x
| ├──[28.14]--通过调用门转移控制时的栈切换过程_ev.mp4 16.69M
! C4 \- ?: a& `| ├──[28.15]--通过调用门转移控制并返回的完整描述_ev.mp4 26.95M! X7 y) d+ F: |, l
| ├──[28.16]--创建0、1和2特权级的栈并登记在TSS中_ev.mp4 32.65M
1 v& N+ U( Q$ r& p( z% p| ├──[28.17]--通过模拟调用门返回进入用户程序执行_ev.mp4 35.57M
% E0 Y; ]( Z' y/ L6 ~' s; c3 z| ├──[28.1]--特权级保护的必要性和特权保护机制_ev.mp4 26.83M
& V" T4 }$ N; ~# w# p( i| ├──[28.2]--当前特权级CPL_ev.mp4 10.10M
' o+ T/ V- w W; X( }8 ^| ├──[28.3]--描述符特权级DPL_ev.mp4 28.89M
/ f9 z7 ?6 b* |- L8 S/ G| ├──[28.4]--任务公共部分和私有部分的特权级划分_ev.mp4 50.25M2 j( B) t! ~" L G. h# M
| ├──[28.5]--依从的代码段_ev.mp4 8.74M
; a# ?5 O+ J1 g& I3 ~3 ]| ├──[28.6]--门描述符和调用门_ev.mp4 23.53M; Y+ x9 X* ]* O7 }& a5 Y6 \
| ├──[28.7]--本章程序说明及特权级检查的时机_ev.mp4 17.24M+ k+ Y; B( P5 j. S. S; b7 |. x6 n! m
| ├──[28.8]--请求特权级RPL_ev.mp4 25.02M
7 X" |& b! }/ v0 @8 T4 k! X, {) H' b| └──[28.9]--请求特权级调整指令ARPL_ev.mp4 19.96M
( o1 p9 l2 n& z% S/ F4 ]├──{29}--协同式任务切换 4 y' I6 M0 c) Z/ ^0 b% F
| ├──[29.10]--通过JMPFAR执行任务切换的过程_ev.mp4 27.62M+ s0 w$ u h, G- d4 J
| ├──[29.11]--内核任务与用户任务轮流执行的过程_ev.mp4 47.30M5 u% K4 \& y# x' }* D
| ├──[29.12]--任务的终止和清理_ev.mp4 36.34M
$ T3 h9 a8 q8 T6 E# `* L& k0 L5 g| ├──[29.1]--多任务和任务切换概述_ev.mp4 25.85M* H# m+ a4 g& d" `4 T
| ├──[29.2]--内核任务的创建和I/O特权级IOPL_ev.mp4 28.80M% Q" \2 p$ Z$ r& l0 X- Z$ x
| ├──[29.3]--I/O特权级的修改和POPF指令_ev.mp4 14.64M* B( H9 b6 }: ^; u( H$ c' o% E( ?2 ^4 q
| ├──[29.4]--任务的用户态和内核态_ev.mp4 17.10M, ^/ N% g4 J2 \/ e8 t! y$ f4 U3 E) P
| ├──[29.5]--I/O许可位串和TSS的I/O许可位映射区_ev.mp4 24.51M
6 I" J3 L% A8 w( E3 k| ├──[29.6]--任务切换的方法及内核任务的确立_ev.mp4 33.28M
# W3 q8 |3 u. r M& L! e) U| ├──[29.7]--用户任务的创建和初始化_ev.mp4 58.42M
$ z2 V& O5 B R$ L0 |- x| ├──[29.8]--简单的任务调度和切换策略_ev.mp4 20.35M5 c9 B h1 f5 V
| └──[29.9]--遍历TCB链表寻找忙任务和就绪任务_ev.mp4 25.50M
& A6 g; S! v+ L; Z├──{30}--中断和异常的处理与抢占式多任务
, p) d% D1 p2 \! l* x| ├──[30.10]--中断和异常发生时的栈切换过程_ev.mp4 30.89M
5 H( x7 {) o# e! `5 g| ├──[30.11]--在中断处理过程中实施任务切换(含NOP指令的介绍)_ev.mp4 62.43M3 b1 Q [& ]. R7 D4 h7 a
| ├──[30.12]--抢占式多任务的执行效果演示_ev.mp4 35.49M
% W6 V6 C# R3 ~+ {1 S0 X1 E% R8 A| ├──[30.1]--中断和异常概述_ev.mp4 21.50M- W F1 [7 l! N' J) Z' d [6 T
| ├──[30.2]--保护模式下中断和异常的向量分配_ev.mp4 23.71M- }& F# k; p9 a" B
| ├──[30.3]--中断描述符表、中断门和陷阱门_ev.mp4 29.79M0 z( u r7 t3 e& [, ]& f# {
| ├──[30.4]--本章程序介绍_ev.mp4 56.64M' b9 ^4 P5 \& ]' r3 I9 W# V% M& U
| ├──[30.5]--创建并安装全部的256个中断门_ev.mp4 47.84M+ K- l- F2 b( k( F% Z. q2 V; X
| ├──[30.6]--为实时时钟中断创建和安装中断门_ev.mp4 21.08M @- N7 b8 e" U* B# ~; D0 b' |
| ├──[30.7]--加载中断描述符表寄存器IDTR_ev.mp4 14.26M
, s9 B0 G3 }+ a$ M1 V1 P/ I3 O| ├──[30.8]--重新设置8259A主片的中断向量_ev.mp4 37.43M
' ~& X# ]' R, ]. b7 C# z, L| └──[30.9]--中断和异常发生时的特权级检查_ev.mp4 12.34M& j# G" Z7 I4 ~
├──{31}--分页和动态页面分配
+ `* E: X4 ^% {. W+ d; y9 a+ D( `| ├──[31.10]--设置控制寄存器CR3和CR0开启分页功能_ev.mp4 13.40M* ?9 f Q3 v! U& q; V. v) z
| ├──[31.11]--在调试器中观察页目录表和页表_ev.mp4 51.87M; x' N* p3 _9 `4 b2 l
| ├──[31.12]--准备将内核映射到虚拟内存的高端_ev.mp4 26.11M' s2 }! x% M, K9 x" p+ I/ O
| ├──[31.13]--在分页机制下访问页目录表自身_ev.mp4 20.23M
! o0 K, ^9 p3 S0 {| ├──[31.14]--使内核在虚拟内存高端的映射生效_ev.mp4 28.68M
* J5 U% J8 F1 t| ├──[31.15]--为内核任务创建任务控制块TCB_ev.mp4 32.55M
$ r: G! N0 v! l/ T+ I| ├──[31.16]--为内核任务的TSS分配内存空间_ev.mp4 30.63M
& h& ?& }5 E9 e( C: V* g| ├──[31.17]--处理与线性地址对应的页目录项和页表项_ev.mp4 27.06M
' u: ?+ U+ M2 `" g1 E+ d| ├──[31.18]--根据需要分配物理页并设置页表项_ev.mp4 10.42M
: L' Y& v) E5 b! M- h a( S| ├──[31.19]--物理内存的页面管理和页映射位串_ev.mp4 29.05M
; q7 _+ H0 F$ G& i9 f| ├──[31.1]--保护模式下的段式虚拟内存管理_ev.mp4 27.08M
1 \! \6 H& O1 x2 O4 b6 s| ├──[31.20]--空闲页的搜索和BTS指令_ev.mp4 12.47M
/ U5 B4 P& ]1 h| ├──[31.21]--空闲页搜索和分配的具体过程_ev.mp4 21.27M/ @5 E+ f4 q" v4 t, k
| ├──[31.22]--确立内核任务并开始创建用户任务_ev.mp4 36.15M" l5 d4 ]2 z. o4 l3 `
| ├──[31.23]--用户任务的内存分配策略_ev.mp4 26.37M
1 [) G& T3 B y( a6 E2 C$ B& f| ├──[31.24]--清空内核任务页目录表的前半部分并刷新TLB_ev.mp4 27.57M0 _& [1 d( h& ]- y1 _' a
| ├──[31.25]--为用户任务分配内存并创建LDT_ev.mp4 21.21M A. \; V8 d0 |( E& s0 E% K
| ├──[31.26]--用户程序的加载和重定位_ev.mp4 38.74M
3 c2 `- x, D# O6 e| ├──[31.27]--用户任务页目录表的创建和访问以及INVLPG指令_ev.mp4 43.95M
% C, J( `5 y. d8 c! c9 X! O9 [! D| ├──[31.28]--第二个用户任务的创建和分页模式下的任务切换_ev.mp4 32.05M
; y# ^- t, h3 r3 \| ├──[31.29]--分页模式下多任务切换的演示和调试_ev.mp4 107.49M) `0 H- e; X6 T$ f" m6 A) P- \
| ├──[31.2]--每个任务独立的虚拟内存_ev.mp4 14.29M
3 b, l! K4 w5 h0 J| ├──[31.3]--物理内存的分页以及段到页的拆分_ev.mp4 20.83M
1 E$ M. b6 |, @% U: s; X| ├──[31.4]--处理器的段部件和页部件_ev.mp4 20.87M" ]7 j- Q# n$ Q% e
| ├──[31.5]--从线性地址到物理地址的转换过程_ev.mp4 21.29M6 O' E/ I0 B" R" o) V' `' S8 k0 F7 c
| ├──[31.6]--页目录和页表及其地址转换过程_ev.mp4 28.53M
6 p9 F" F9 }: y/ c+ y| ├──[31.7]--设计内核的页目录和页表_ev.mp4 34.58M
, l8 V6 c0 U; Y1 g: F( n0 x| ├──[31.8]--页目录项和页表项的组成格式_ev.mp4 12.55M
! ]9 v0 P' x4 w& Q| └──[31.9]--创建内核的页表并初始化低端1MB对应的页表项_ev.mp4 18.38M
" k8 ?3 x5 N$ b G! U: v# a├──{32}--平坦模型(大结局)
9 s) b& p+ P5 V+ g* X! T4 U5 D| ├──[32.1]--为什么要引入平坦模型及平坦模型的特点_ev.mp4 24.65M
; m" g D" @0 j% K1 T9 o| ├──[32.2]--在主引导程序中创建平坦模型下的段_ev.mp4 20.55M" V, t) m* H/ r- V3 G
| ├──[32.3]--平坦模型对内核程序分段的影响_ev.mp4 43.66M
, `# L' I7 }; z& g1 D: p" F+ V| ├──[32.4]--平坦模型对加载内核程序的影响_ev.mp4 26.22M1 f" q: E6 T, O/ G2 I
| ├──[32.5]--平坦模型下的内核初始化与内核任务的确立_ev.mp4 47.66M
, j: A% _" }7 O* o| ├──[32.6]--平坦模型下的用户程序结构_ev.mp4 37.86M5 i( n2 P: H0 ?' }
| ├──[32.7]--平坦模型下的用户任务创建_ev.mp4 13.00M
' ~+ U4 K- ]$ Z0 z| ├──[32.8]--在用户任务内动态分配内存_ev.mp4 19.35M
" q5 x( l/ |' ]1 W& X| └──[32.9]--平坦模型下的多任务切换演示与调试_ev.mp4 14.79M
1 I5 Z+ p% x- b9 P2 E├──X86从实模式到保护模式 源代码.pdf 1.13M
# W& {: O+ m# r5 p0 w└──x86汇编语言-从实模式到保护模式.文字版.pdf 33.90M. v! s" I( ?& ?
5 H- Q- W8 D! x4 B1 D
. l) ?) Z8 Z$ K$ B! k2 S! v! r
# s6 ~6 r+ D# q4 J6 }' r1 q9 f' [/ u
7 n3 q" r) ~% R" q/ y$ Z- L. V6 _资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见( m9 Y) e2 ~3 P
' f' O5 v+ U6 S' ?3 q
' y) c3 A3 y& W4 \0 R- S1 A0 q, g5 q6 ~: Q* E7 d* F
本资源由Java自学网收集整理【www.javazx.com】 |
|