Turbo C直接記憶體存取的問題

喜歡程式設計嗎?想要一窺 KDE/Qt 程式設計的奧秘嗎?想要
學習 X Window 上的視窗程式設計嗎?歡迎各類關於 KDE/Qt、Qtopia、Qt/Embedded、QSA、PyQt 等各類心得討論。

版主: AceLan, Franklin

Turbo C直接記憶體存取的問題

文章ipis » 週六 7月 22, 2006 12:32 am

請問大家
最近我在寫Turbo C的程式,發現Turbo C有記憶體空間64K的限制。
所以如果我需要存取大筆資料的話,用陣列的方式是行不通的。而我有試過
用file IO的方式去存取,但因為我的存取是寫在interrupt isr function裡
所以如果我的timer interrupt頻率很高的話,file IO可能會太慢了。

這幾天我找到二個指令,想用它來解決存取的問題,分別是peekb 和 pokeb
直接記憶體存取。相信直接記憶體存取的速度應該會夠快才對,而且把資料
直接存入記憶體也可以避開Turbo C記憶體空間64K的限制。但在使用它們之
前我有一個問題想請教大大們。一般來說我們開機時,便有一些資料被load
到記憶體內了,那麼我要怎麼知道,那一段記憶體可以使用,哪一段記憶體
有放東西不能使用呢??

謝謝大大們的指教
IPIS
ipis
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週四 10月 06, 2005 1:17 pm
來自: 南投

文章richliu » 週六 7月 22, 2006 2:29 am

1. 如果你是在 DOS 下寫程式, 請修改記憶體模式為 Large 或是 Huge 就可以了(詳細我早就忘了). 64K 的限制是 .com or .exe 設定成 small/medimum才會有的.

2. 如果你覺得 Large (64K << 4) 還不夠用的話, 可以考慮用 DPMI 等 Protect mode 的 Dos Extension 使用. 最高應該是 2^32bits 吧...

3. Linux 下一般來說限制 3G (Virtual Memory Address), 除非你在 Kernel 將 High Memory Support 打開.

重點是, Linux 下可以考慮用 rhide, 和 Turbo C 一樣好 :)
GUI 下有 Kdevelop 可以用, 也是非常好用的
richliu
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週二 8月 16, 2005 11:22 pm
來自: 中華民國

文章訪客 » 週六 7月 22, 2006 12:44 pm

為什麼不用 BCC5.5? 它也是免費的

而且 Turbo C 跟 KDE 有關嗎 :-?
訪客
 


回到 KDE/Qt 程式設計

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron