精華區beta Programming 關於我們 聯絡資訊
==> 在 FreeF1y.bbs@ptt.cc (ㄝ夫嗄一一ㄝ夫歪) 的文章中提到: > ※ 引述《bert.bbs@bbs.csie.ncu.edu.tw (哇哩咧...)》之銘言: > : TSR 不結束程式的話怎麼能叫做 TSR? > 可能我不太了解DOS的運作方式吧!? > 我知道TSR的運作原理是把原本的Interrupt Vector Table取代掉 > 然後再把自己留在記憶體中 > 關於留在記憶體的方法,我查到的資料是說 > DOS裡面有一個指標,負責標示出可用的記憶體的開頭 > 然後每次程式Load進來就從那個位置開始存 > 而TSR常駐記憶體的方法就是把標示可用記憶體的指標往後移 > 使得程式的前半段留在記憶體中 > 這是原始網頁 > http://0rz.net/1c1pJ > 而我的問題是 > 這樣的機制,為什麼一定要程式結束才能完成? > 只是移動一個指標而已,應該不用一定要結束程式吧 1. 我想你被「結束」這兩個字誤導了。TSR 其實沒有結束, 它仍然「繼續執行」。 2. 之所以有 TSR 的關念, 是因為 DOS 不是多工作業系統, 你一次只能跑一個程式, 程式結束才能再跑下一個程式。 如果你要程式 A 在背景跑, 以便再跑程式 B, 那麼 A 就必須是 TSR 程式。 > 所以我的問題應該是說 > 「有什麼方法可以把程式常駐在記憶體之後不結束的呢?」 > 所以請不要再跟我說因為它叫TSR所以一定要結束.. > 以上 > 如果我的觀念有任何錯誤,還煩請指正 > 這部分我只是個初學者,不好意思 -- * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>