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