Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5234|回复: 37

李述桐-X64汇编语言

[复制链接]

该用户从未签到

4

主题

146

帖子

272

积分

普通会员

Rank: 2

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

: V) G6 o& G# v; x' D- K本资源由Java自学网收集整理【www.javazx.com】
回复

使用道具 举报

该用户从未签到

2

主题

131

帖子

264

积分

普通会员

Rank: 2

积分
264
发表于 2023-11-18 07:35:13 | 显示全部楼层
看到这帖子真是高兴!
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

148

帖子

283

积分

普通会员

Rank: 2

积分
283
发表于 2023-11-18 08:05:21 | 显示全部楼层
激动人心,无法言表!
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

138

帖子

278

积分

普通会员

Rank: 2

积分
278
发表于 2023-11-18 08:24:03 | 显示全部楼层
看到这帖子真是高兴!
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

1

帖子

6

积分

普通会员

Rank: 2

积分
6
发表于 2023-11-19 11:07:12 | 显示全部楼层
看到这帖子真是高兴!
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4081

帖子

8168

积分

普通会员

Rank: 2

积分
8168
发表于 2023-11-29 09:34:05 | 显示全部楼层
很完美的教程!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4145

帖子

8292

积分

普通会员

Rank: 2

积分
8292
发表于 2023-12-23 18:15:46 | 显示全部楼层
站长加油 看好你
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4200

帖子

8402

积分

普通会员

Rank: 2

积分
8402
发表于 2024-1-9 19:31:10 | 显示全部楼层
大佬  厉害呀
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4219

帖子

8440

积分

普通会员

Rank: 2

积分
8440
发表于 2024-2-2 23:15:02 | 显示全部楼层
准备开始学习了
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4076

帖子

8154

积分

普通会员

Rank: 2

积分
8154
发表于 2024-2-10 06:09:32 | 显示全部楼层
资源持续更新 牛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Java自学网

GMT+8, 2024-11-24 06:03 , Processed in 0.112441 second(s), 28 queries .

Powered by Javazx

Copyright © 2012-2022, Javazx Cloud.

快速回复 返回顶部 返回列表