==> 在 [email protected] (rtyu) 的文章中提到:
> > 指標有二種far & near,依OS的支援在執行有差別及編譯器的原則
> > 編譯時有差別。
> > 例如Intel CPU之上具有segment (i386之前) & selector(i386之後
> > ,含),每個segment=64k,每個selector=4GB在同一區間的位址可以
> > 用 near 指標,速度比較快一點,用far指標也可以達成目標,但速
> > 度慢了一點。
> 請問selector 是什麼意思? 不會是選擇器吧?
> 記憶體選擇器?
是選擇器, 這是CPU硬體設計上的東西, 如果想懂可以看CPU的手冊,
或是講X86記憶體模式的資料
> (1)意思是不是說 如果用near指標向系統要一塊記憶體
> 則系統會在最近的一塊segment找
> 執行起來會快一點 ,
> 但是有的時候不一定能找到一塊夠大的記憶體
> 也許近程的segment剛好塞滿程式了
> 這時只好用遠程指標來找 ?
其實理由是因為當初的CPU, address line沒那麼多, 所以他不得不用
segment:offset的方式來做, 後來只是為了"相容性"所以保留
> (2)LPSTR是不是可以在selector所掌控的4GB記憶體裡面任意
> 指向每個記憶體位置?
> 而如果換了一個行程就換了另一個4gb空間 , 所以相同的selector
> 所指到的記憶體位址並不適用這個4gb空間?
不懂意思....
> (3)虛擬86模式是不是平常在寫的console模式?
> (有的console模式也能使用MFC的類說)
> 好像蠻詳細的 , 謝謝 喔~~~ ^^
不一定, 如果你用目前的compiler, 即使是console程式,
編出來也不是在v86 模式跑
正確的做法, 應該是你如果開出一個DOS box,
或是你run一個以前dos時代的程式, 才會在v86下跑
--
* Post by mingchieh from 61-228-51-194.dynamic.hinet.net
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>