??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品99久久久精品无码,国产一区二区三区久久精品,一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 http://www.shnenglu.com/xingkongyun/category/8310.html星空陨的E序站zh-cnWed, 29 Oct 2008 13:54:31 GMTWed, 29 Oct 2008 13:54:31 GMT60Bochs调试指ohttp://www.shnenglu.com/xingkongyun/articles/65033.html杨{?/dc:creator>杨{?/author>Sat, 25 Oct 2008 13:59:00 GMThttp://www.shnenglu.com/xingkongyun/articles/65033.htmlhttp://www.shnenglu.com/xingkongyun/comments/65033.htmlhttp://www.shnenglu.com/xingkongyun/articles/65033.html#Feedback0http://www.shnenglu.com/xingkongyun/comments/commentRss/65033.htmlhttp://www.shnenglu.com/xingkongyun/services/trackbacks/65033.htmlBochs调试指o

 

Q?/span>1Q?/span>b addr 在物理地址处设|断?/span>

 

Q?/span>2Q?/span>lb 在线性地址处设|断?/span>

 

Q?/span>3Q?/span>info break 昄当前所有的断点的信

 

Q?/span>4Q?/span>c l箋执行知道遇到断点

 

Q?/span>5Q?/span>n 单步执行Q蟩q子E序

 

Q?/span>6Q?/span>s 单步执行

 

Q?/span>7Q?/span>s num ( s指o后加一数字执行n?/span>

 

Q?/span>8Q?/span>dump_cpu 查看寄存器信?/span>

 

Q?/span>9Q?/span>xp /nuf addr 昄物理内存的数?/span>

(?/span>:xp /32bx 0x7c00 ----0x7c00 开始处的内存内?/span>

32bx --b 代表昄字节 x 表示?/span>16q制昄)

 

Q?/span>10Q?/span>x /nuf addr 昄U性内存地址的数?/span>

 

Q?/span>11Q?/span>disassemble [/count] start end 反汇~一D늺性内?/span>

u [/count] start end 反汇~一D늺性内?/span>(作用与上面的一?/span>)

(count 参数指明要反汇编的指令条?/span> ,例子Q?/span>u /5 --反汇~从当前地址开始的5条指?/span>)

 

 

 

Q?/span>12Q?/span>vbreak segment:offset 在指定的虚拟地址处设|断点(D地址Q偏U)

 

Q?/span>13Q?/span>info指ol?/span>

info break 展示当前的断点状态信?/span>

info dirty 展示自从上次昄以来物理内存中的脏页Q被写的)

info program 展示E序的执行状?/span>

info r|reg|rigisters 展示寄存器内?/span>

info cpu 展示CPU寄存器内?/span>

info fpu 展示FPU寄存器的状?/span>

info idt 展示中断描述?/span>

info ivt 展示中断向量?/span>(保护模式下无?/span>)

info gdt 展示全局描述?/span>

info tss 展示当前的Q务状态段

info cr 展示CR0-CR4寄存器状?/span>

info flags 展示标志寄存?/span>

 

 

 



]]>
保护模式下DPL,RPL,CPL的区?/title><link>http://www.shnenglu.com/xingkongyun/articles/63495.html</link><dc:creator>杨{?/dc:creator><author>杨{?/author><pubDate>Wed, 08 Oct 2008 12:28:00 GMT</pubDate><guid>http://www.shnenglu.com/xingkongyun/articles/63495.html</guid><wfw:comment>http://www.shnenglu.com/xingkongyun/comments/63495.html</wfw:comment><comments>http://www.shnenglu.com/xingkongyun/articles/63495.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/xingkongyun/comments/commentRss/63495.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/xingkongyun/services/trackbacks/63495.html</trackback:ping><description><![CDATA[  <p><strong> </strong></p> <p><strong> </strong></p> <p><strong><span>1.</span></strong><strong><span>当前Ҏ</span><span>CPL(</span></strong><strong><span>Current</span><span> Privilege Level)</span></strong></p> <p><span> CPL</span><span>是当前进E的权限U别</span><span>(Current Privilege Level)</span><span>Q是当前正在执行的代码所在的D늚ҎU,存在?/span><span>cs</span><span>寄存器的低两位?/span></p> <p> </p> <p><strong><span>2.</span></strong><strong><span>描述W特权</span><span>DPL(</span></strong><strong><span>Descriptor</span><span> Privilege Level)</span></strong><span><br>  DPL</span><span>存储在段描述W中Q规定访问该D늚权限U别</span><span>(Descriptor Privilege Level)</span><span>Q每个段?/span><span>DPL</span><span>固定?/span><span><br><br></span><strong></strong></p> <p><strong><span>3.</span></strong><strong><span>hҎU?/span><span>RPL(Request Privilege Level)</span></strong></p> <p><span>RPL</span><span>保存在选择子的最低两位?/span><span>RPL</span><span>说明的是q程Ҏ讉K的请求权限,意思是当前q程惌的请求权限?/span><span>RPL</span><span>的值由E序员自己来自由的设|,q不一?/span><span>RPL>=CPL</span><span>Q但是当</span><span>RPL<CPL</span><span>Ӟ实际起作用的是</span><span>CPL</span><span>了,因ؓ讉K时的Ҏ查是判断Q?/span><span>EPL=max(RPL,CPL)<=DPL</span><span>是否成立Q所?/span><span>RPL</span><span>可以看成是每ơ访问时的附加限Ӟ</span><span>RPL=0</span><span>旉加限制最,</span><span>RPL=3</span><span>旉加限制最大。所以你不要想通过来随便设|一?/span><span>RPL</span><span>来访问一个比</span><span>CPL</span><span>更内层的Dc?/span></p> <p><strong><span>对于为甚麽在</span><span>CPL</span></strong><strong><span>之外在增加一?/span><span>RPL</span></strong><strong><span>的原因:</span></strong></p> <p><span>Intel</span><span>手册上的解释为:</span><span>The RPL can be used to insure that privileged code does not access a segment on behalf of an application program unless the program itself has access privileges for that segment.</span></p> <p><span>Q?/span><span>RPL</span><span>能够用来保hҎU的代码不会代表另一个应用程序去讉K一个段Q除非那个应用程序具有访问那个段的权?/span><span>.</span><span>Q?/span></p> <p><span>比方_</span><span>A</span><span>q程?/span><span>DPL</span><span>?/span><span>0</span><span>Q?/span><span>C</span><span>q程?/span><span>DPL</span><span>?/span><span>1</span><span>Q现在有一?/span><span>B</span><span>q程他的</span><span>DPL</span><span>?/span><span>2</span><span>Q这</span><span>B</span><span>q程惛_?/span><span>A</span><span>q程去访?/span><span>C</span><span>的数据,如果没有</span><span>RPL</span><span>的话q样的委托访问是可以成功的,但这h非常不安全的。有?/span><span>RPL</span><span>以后</span><span>A</span><span>q程在访?/span><span>C</span><span>的时候还要受?/span><span>RPL</span><span>的约束,此时可以访?/span><span>C</span><span>的选择子的</span><span>RPL</span><span>设ؓ</span><span>B</span><span>?/span><span>DPL</span><span>Q这?/span><span>A</span><span>的访问权限就相当?/span><span>EPL=max</span><span>Q?/span><span>RPL</span><span>Q?/span><span>DPL</span><span>Q?/span><span>=2</span><span>Q这样他无法代?/span><span>B</span><span>去越权访?/span><span>C</span><span>了?/span></p> <p> </p> <p><span>在网上还有一个Ş象的例子Q一赯出来Q?/span></p> <p align=left><span>一个农?/span><span>(</span><span>低特权</span><span>)</span><span>请县?/span><span>(</span><span>高特权</span><span>)</span><span>打听一U超U种子,如果扑ֈ的话帮忙拿一点回来,听闻q种U子可让收成倍增。县长说Q好Q我认识很多当官的,我可以帮你打听一下哪里有Q但是有些地方如果需要表Cn分的话我只能说我是农民的代理人。县长利用自qw䆾很容易找CU子在哪?/span><span>---</span><span>扄时候没有h问v他代表谁。县镉KU子理员可不可以给他一点,理员说U子不能l农民因为种子还在试验阶D,我们可以l县长让他们带回当地的专家来帮忙一起做试验Q但是一定要厉K来申诗那你是谁?厉K说我是农民的代理人,因ؓ厉K保证他会q样回答?/span><span>(</span><span>他也不知道那农民是不是专?/span><span>)</span><span>Q管理员当然不给。县长没办法只能告诉农民拿不到种子。这件事里面厉K是以厉K的n份帮农民扑ֈU子Q但需要表Cn分的时候他说只是农民的代理人。这样做厉K可以帮h但也不会l别人利用?/span><span>(</span><span>农民可能把种子拿回来卖钱也说不定Q没人知?/span><span>)<br></span><span>在这?/span><span>RPL</span><span>是厉K的另一个n?/span><span>---</span><span>农民的代理h也就是农?/span><span>---</span><span>他会带在w上Qh家没有问他的时候他不会告诉别hQ所以别Z׃厉K的n分来看待他。当查n份的时候他才告诉你</span><span>---</span><span>我是农民的代理h?/span><span><br><br></span></p> <p> </p> <img src ="http://www.shnenglu.com/xingkongyun/aggbug/63495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/xingkongyun/" target="_blank">杨{?/a> 2008-10-08 20:28 <a href="http://www.shnenglu.com/xingkongyun/articles/63495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>地址环绕和A20地址UK?/title><link>http://www.shnenglu.com/xingkongyun/articles/63417.html</link><dc:creator>杨{?/dc:creator><author>杨{?/author><pubDate>Tue, 07 Oct 2008 09:51:00 GMT</pubDate><guid>http://www.shnenglu.com/xingkongyun/articles/63417.html</guid><wfw:comment>http://www.shnenglu.com/xingkongyun/comments/63417.html</wfw:comment><comments>http://www.shnenglu.com/xingkongyun/articles/63417.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/xingkongyun/comments/commentRss/63417.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/xingkongyun/services/trackbacks/63417.html</trackback:ping><description><![CDATA[转自Q?a >http://www.eetop.cn/blog/html/64/64964-2377.html</a><br><br> <p>早期?086只有20根地址U,只能讉K1M的地址I间。CPUd则按D?偏移的方式进行?6位段+16位偏Uȝ可能的范围是0~0x10FFEFQ即0xFFFF0+0xFFFFQ,?M+65520字节的范围。由于只?0根地址U,所以在?M~1M+65520范围q行讉KӞ会发?#8220;地址回绕”的现象,是说实际会讉K?~65520的地斏V据说某个著名的/臭名昭著的Y件利用了q个特点。在80286Q?86{CPU上,它会p|Q因些CPU有多?0根的地址U,q不产生“地址回绕”现象。ؓ了保持完全的兼容性,IBM军_在PC ATpȝ上加个逻辑Q来模仿以上的回l特征。他们的Ҏ是把A20和键盘控制器的一个输行ANDQ这h控制A20的打开和关闭。一开始时A20是被屏蔽的(Mؓ0Q,直到pȝ软gL开它?/p> <p> </p> <p><strong>A20地址UK?/strong> <br> 1981q?月,IBM公司最初推出的个h计算机IBM PC使用的CPU是Intel 8088。在该微Z地址U?br>只有20?A0 – A19)。在当时内存RAM只有几百KB或不?MBӞ20根地址U已_用来dq些<br>内存。其所能寻址的最高地址?xffff:0xffffQ也?x10ffef。对于超?x100000(1MB)的寻址地址默?br>地环l到0x0ffef。当IBM公司?985q引入AT机时Q用的是Intel 80286 CPUQ具?4根地址U,最<br>高可d16MBQƈ且有一个与8088完全兼容的实模式q行方式。然而,在寻址Dq?MB时它却不?br>?088那样实现地址d的环l。但是当时已l有一些程序是利用q种地址环绕机制q行工作的。ؓ?br>实现完全的兼Ҏ,IBM公司发明了用一个开x开启或止0x100000地址比特位。由于在当时?042<br>键盘控制器上恰好有空闲的端口引脚Q输出端口P2Q引脚P21Q,于是便用了该引脚来作ؓ与门控制q?br>个地址比特位。该信号卌UCؓA20。如果它为零Q?strong>则比?0及以上地址都被清除</strong>。从而实C兼容性?<br> ׃在机器启动时Q默认条件下QA20地址U是止的,所以操作系l必M用适当的方法来开启它?br>但是׃各种兼容机所使用的芯片集不同Q要做到q一点却是非常的ȝ。因此通常要在几种控制Ҏ?br>选择?/p> <p> <br> 对A20信号U进行控制的常用Ҏ是通过讄键盘控制器的端口倹{?nbsp;有些操作pȝA20的开启和止?/p> <p>为实模式与保护运行模式之间进行{换的标准q程中的一部分?br>׃键盘的控制器速度很慢Q因此就不能使用键盘控制器对A20U来q行操作。ؓ此引q了一个A20?br>速门选项(Fast Gate A20)Q它使用I/O端口0x92来处理A20信号U,避免了用慢速的键盘控制器操作方<br>式。对于不含键盘控制器的系l就只能使用0x92端口来控Ӟ但是该端口也有可能被其它兼容微机上的<br>讑֤Q如昄芯片Q所使用Q从而造成pȝ错误的操作?<br> q有一U方式是通过?xee端口来开启A20信号U,写该端口则会止A20信号Uѝ?/p> <img src ="http://www.shnenglu.com/xingkongyun/aggbug/63417.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/xingkongyun/" target="_blank">杨{?/a> 2008-10-07 17:51 <a href="http://www.shnenglu.com/xingkongyun/articles/63417.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于80x86处理器保护模式下存储D|q符属性中cd结http://www.shnenglu.com/xingkongyun/articles/62743.html杨{?/dc:creator>杨{?/author>Thu, 25 Sep 2008 02:09:00 GMThttp://www.shnenglu.com/xingkongyun/articles/62743.htmlhttp://www.shnenglu.com/xingkongyun/comments/62743.htmlhttp://www.shnenglu.com/xingkongyun/articles/62743.html#Feedback0http://www.shnenglu.com/xingkongyun/comments/commentRss/62743.htmlhttp://www.shnenglu.com/xingkongyun/services/trackbacks/62743.html关于80x86处理器保护模式下存储D|q符属性中cd结

 

*1.存储D|q符

 

80x86存储D|q符(?/span>8字节)

                          (?/span>1)

属性字D(W?/span>5Q?/span>6字节Q?/span>

 

 

我们先来看看q?/span>8个字节中我感觉最复杂?/span>TYPEq四位标志吧Q然后在看看其他的位

W五字节低四位ؓ描述W的cd描述Q下面主要将q四位单独抽行说?/span>:

__________________________________

|      |       |     |     |

| 3   | 2    | 1 | 0 |

| E   |       |     | A |

_________________________________

 

(1)?/span>0指示描述W是否被讉Kq?/span>(Accessed)Q用W号A标记?/span>A=0表示未被访问,A=1 表示D已被访问。当把描q符的相应选择子装入到D寄存器Ӟ80386把该位置?/span>1Q表明描q符已被讉K。操作系l可试讉K位,已确定描q符是否被访问过

(2)?/span>3指示所描述的段是代码段q是数据D,用符?/span>E标记?/span>E=0表示Dؓ数据D,相应的描q符也就是数据段(包括堆栈D?/span>)描述W。数据段是不可执行的Q但L可读的?/span> E=1表示D|可执行段Q即代码D,相应的描q符是代码D|q符。代码段L不可写的Q若需要对代码D进行写入操作,则必M用别名技术,即用一个可写的数据D|q符来描q该代码D,然后Ҏ数据D进行写入?/span>

 

___________________________________

|      |       |     |     |

| 3   | 2    | 1 | 0 |

| E=0 | ED   | W |  A |

_________________________________

(3)在数据段描述W中(E=0的情?/span>, Q如上图所C?/span>)Q?/span>TYPE中的?/span>1指示所描述的数据段是否可写Q用W标记?/span> W=0表示对应的数据段不可写。反之,W=1表示数据D|可写的。注意,数据D|L可读的?/span>

TYPE中的?/span>2?/span>ED位,指示所描述的数据段的扩展方向?/span>ED=0表示数据D向高端扩展Q也x内偏Udd于等于段界限?/span>ED=1表示数据D向低扩展,D内偏移必须大于D늕限?/span>

___________________________________

|      |       |     |     |

| 3   | 2    | 1 | 0 |

| E=1 | C    | R | A |

_________________________________

(4)在代码段描述W中(E=1的情况,如上图所C?/span>)Q?/span>TYPE中的?/span>1指示所描述的代码段是否可读Q用W号R标记?/span>R=0表示对应的代码段不可读,只能执行?/span>R=1表示对应的代码段可读可执行。注意代码段L不可写的Q若需要对代码D进行写入操作,则必M用别名技术?/span>

在代码段中,TYPE中的?/span>2指示所描述的代码段是否是一致代码段Q用C标记?/span>C=0表示对应的代码段是非一致代码段(普通代码段)Q?/span>C=1表示对应的代码段是一致代码段?/span>

 

结Q(如下图)

                                     (?/span>2)

 

上面q些我在初学保护模式的时候感觉很qhQ所以先拿出来说_下面再看看其他的标志?/span>.

 

一Q段基址与段界限

从图一我们可以看出基地址?/span>32位,被安排在2Q?/span>3Q?/span>4Q?/span>7字节中,D늕限长20位,被安排在0Q?/span>1字节与第6字节的低4位中?/span>

使用两个域存放段基地址和段界限的原因与80286有关。在80286保护方式下,D基地址只有24位长Q而段界限只有16位长?/span>80286存储D|q符管也是8字节长,但实际只使用?/span> 6字节Q高2字节必须|ؓ0?/span>80386存储D|q符q样的安排,可?/span>80286的存储段描述W的格式?/span>80386下l有效?/span>

 

?/span>.

(1)P位称为存?/span>(Present)位?/span>P=1表示描述W对地址转换是有效的Q或者说该描q符所描述的段存在Q即在内存中Q?/span>P=0表示描述W对地址转换无效Q即该段不存在。用该描述W进行内存访问时会引起异常?/span>

 

(2)DPL表示描述W特权(Descriptor Privilege level)Q共2位。它规定了所描述D늚ҎU,用于Ҏ查,以决定对该段能否讉K

 

(3)DT位说明描q符的类型。对于存储段描述W而言Q?/span>DT=1Q以区别与系l段描述W和门描q符(DT=0)?/span>

 

(4)TYPE标志Q即开讲得那堆?/span>

 

(5)G为就是段界限_度(Granularity)位?/span>G=0表示界限_度为字节;G=1表示界限_度?/span>4K 字节。注意,界限_度只对D늕限有效,Ҏ基地址无效Q段基地址L以字节ؓ单位?/span>

 

补充Q?/span>D늕限规定段的大。在80386保护模式下,D늕限用20位表C,而且D늕限可以是以字节ؓ单位或以4K字节为单位。段属性中有一位对此进行定义,把该位成为粒度位Q用W号G标记?span>G=0表示D늕限以字节位位单位Q于?span>20位的界限可表C的范围?span>1字节?span>1M字节Q增量ؓ1字节Q?span>G=1表示D늕限以4K字节为单位,于是20位的界限可表C的范围?span>4K字节?span>4G字节Q增量ؓ4K字节。当D늕限以4K字节为单位时Q实际的D늕?span>LIMIT可通过下面的公式从20 位段界限Limit计算出来Q?span>

LIMIT=limit*4K+0FFFH=(Limit SHL 12)+0FFFH

所以当_度?span>1ӞD늚界限实际上就扩展?span>32位。由此可见,?span>80386保护模式下,D늚长度可大大超q?span>64K字节?

 

 

 (6)D位是一个很Ҏ的位Q在描述可执行段、向下扩展数据段或由SS寄存器寻址的段(通常是堆栈段)的三U描q符中的意义各不相同?/span>

在描q可执行D늚描述W中Q?/span>D位决定了指o使用的地址及操作数所默认的大?/span>D=1表示默认情况下指令?/span>32位地址?/span>32位或8位操作数Q这L代码D也UCؓ32位代码段Q?/span>D=0 表示默认情况下,使用16位地址?/span>16位或8位操作数Q这L代码D也UCؓ16位代码段Q它?/span>80286兼容。可以用地址大小前缀和操作数大小前缀分别改变默认的地址或操作数的大?/span>

在向下扩展数据段的描q符中,D位决定段的上部边界?/span>D=1表示D늚上部界限?/span>4GQ?/span>D=0表示D늚上部界限?/span>64KQ这是ؓ了与80286兼容?/span>

在描q由SS寄存器寻址的段描述W中Q?/span>D位决定隐式的堆栈讉K指o(?/span>PUSH?/span>POP指o)使用何种堆栈指针寄存器?/span>D=1表示使用32位堆栈指针寄存器ESPQ?/span>D=0表示使用16位堆栈指针寄存器SPQ这?/span>80286兼容?/span>

 

(7)AVL位是软g可利用位?/span>80386对该位的使用未左规定Q?/span>Intel公司也保证今后开发生产的处理器只要与80386兼容Q就不会对该位的使用做Q何定义或规定?/span>

 

 

 

三:.存储D|q符的结构类型表C?/span>

 

; ?/span> (注:采用nasm语法Q?/span>

; 描述W?/span>

; usage: Descriptor Base, Limit, Attr

;        Base: dd

;        Limit: dd (low 20 bits available)

;        Attr: dw (lower 4 bits of higher byte are always 0)

%macro Descriptor 3

       dw   %2 & 0FFFFh                            ; D늕?/span> 1                         (2 字节)

       dw   %1 & 0FFFFh                            ; D基址 1                         (2 字节)

       db    (%1 >> 16) & 0FFh                    ; D基址 2                         (1 字节)

       dw   ((%2 >> 8) & 0F00h) | (%3 & 0F0FFh)      ; 属?/span> 1 + D늕?/span> 2 + 属?/span> 2         (2 字节)

       db    (%1 >> 24) & 0FFh                    ; D基址 3                         (1 字节)

%endmacro ; ?/span> 8 字节

 

 

*2.pȝD|q符

在上面我们讲q对于存储段描述W其DT位ؓ1Q当描述W的DT位ؓ0Ӟ那么q个描述W所描述的就是一个系l段描述W了?/span>

 

pȝD|Z实现存储理机制所使用的一U特别的Dc在80386中,有两U系l段QQ务状态段TSS和局部描q符?/span>LDTDc用于描q系l段的描q符UCؓpȝD|q符?/span>

 

pȝD|q符与存储段描述W几乎一模一P但也有一定的差别Q?/span>

(1)   DT位,DT=1表示存储D,DT=0表示pȝDc?/span>

(2)   D位,D位在pȝD中不用?/span>

(3)   与存储段最不相同的?/span>TYPEDc?/span>pȝD|q符的类型字D?span>TYPE仍是4位,其其含义与存储段描述W的cd却完全不同。只有类型编码ؓ2?span>1?span>3?span>9?span>B的描q符才是真正的系l段描述W,它们用于描述pȝD?span>LDT和Q务状态段TSSQ其它类型的描述W是门描q符。具体见下表Q?/span>

                        ?

 

**LDTD|q符

LDTD|q符描述d的局部描q符表段?/span>LDTD|q符必须安排在全局描述W表中才有效。在装蝲LDTR寄存器时Q描q符中的LDTD基地址和段界限{信息被装入LDTD|q符高速缓冲寄存器中?/span>

 

**.d状态段描述W?/span>

d状态段TSS用于保存d的各U状态信息。Q务状态段描述W描q某个Q务状态段TSS描述W分?/span>286TSS?/span>386TSS两类?/span>TSS描述W规定了d状态段的基地址和Q务状态段的大等信息。在装蝲d状态段寄存?/span>TRӞ描述W中的段基地址和段界限{信息被装入?/span>TR的高速缓冲寄存器中。在d切换或执?/span>LTR指oӞ要装?/span>TR寄存器?/span>

 

参考:

?span>80X86汇编语言E序设计教程》清华大学出版社 扬季文主~?/span>

《自己动手编写操作系l?/span> 于渊?/span>

 

 

 

 



]]>
þþþۺþ| ˾þþƷ| ҹƷƬþ| þþþAV| ŷ޾Ʒ˾þ| 99Ʒ99þþþþ97| ˾Ʒþö| þ99Ʒþþþþ벥| 뾫Ʒþþþþ| þۺϾþۺϾþۺ| ޾Ʒ99þþþĻ| þþþþAv뾫Ʒר| þþþþúݺݶ| һɫþ88ۺ޾Ʒ| ݺɫþۺ| þҹҹ³³ƬӰ| þþƷav| þþþһƷ| 뾫ƷþѼ | һɫþ88Ʒۺ| ɫ꼤þۺ| ҹ޾þþþþþþ| պŷۺϾþӰԺDs| þþƷձҰ| ŷպƷþ| þԭۺ| ھƷþþĻ| þù¶ƷӰ| þþþþùƷŮ| þþƷ77777| 69Ʒþþþվ| 2021þþƷѹۿ| ձƷþ| ձvaҹĻþ| ܻƺ۵վþmimiɫ| þþۺϾɫ۹| ƷþӰԺ| þþƷ91þۺ鶹| 97þ㽶߿ۿ| Ʒþþþþ| ԭ1769þѲ|