精華區beta Programming 關於我們 聯絡資訊
==> 在 [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>