Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6321|回复: 53

李述桐-X64汇编语言

[复制链接]

该用户从未签到

5

主题

161

帖子

311

积分

普通会员

Rank: 2

积分
311
发表于 2023-11-18 08:12:01 | 显示全部楼层 |阅读模式
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】
回复

使用道具 举报

该用户从未签到

5

主题

144

帖子

293

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

6

主题

165

帖子

334

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

7

主题

155

帖子

291

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

0

主题

1

帖子

6

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

0

主题

4666

帖子

9338

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

0

主题

4701

帖子

9404

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

0

主题

4788

帖子

9578

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

0

主题

4785

帖子

9572

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

0

主题

4616

帖子

9234

积分

普通会员

Rank: 2

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 03:59 , Processed in 0.069872 second(s), 23 queries .

Powered by Javazx

Copyright © 2012-2022, Javazx Cloud.

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