posts - 3,comments - 3,trackbacks - 0
               編譯模式模式有時也叫做尋址模式或內存模式,它處理的就是如何在內存中為程序、數據、堆棧分配空間并存取它們。
               
                微模式(tiny):微模式下整個程序只有一個段,這個段包含碼、靜態和全局數據、堆棧和堆。因為只有一個段,在執行時DOS將把寄存器CS、DS、SS設置為相等,全都指向這個段。在這個段內,碼首先裝入,地址最低,接著是靜態變量和全局變量。然后是堆,最后是堆棧。堆棧和堆都是動態的,對從低地址往高地址增長,堆棧從高地址往低地址增長,若兩者相等,則表示空間耗完了。

              小模式:小模式是最常用的模式,小模式和微模式一樣都是小數據和小程序,但是它的碼和數據/堆棧/堆段是分開的,所以CS不等于DS和SS。其次,除了和數據/堆棧共用一個段的堆外,還有一個遠堆。

              中模式:在數據、堆棧、堆的分配方面,中模式和小模式是一樣的,差別在于碼段的分配,中模式下,來自不同源文件的碼模塊放在不同的碼段內。嚴格的講,同一個源文件內的各函數也是放在不同的碼段的。

              緊湊模式:緊湊模式在概念上是最簡單的。碼、靜態數據、堆棧、堆各有自己的段。堆只有遠堆,沒有近堆。

              大模式:在靜態數據、堆棧、堆的分配方面,大模式等同于緊湊模式,在碼的分配方面,大模式等同于中模式。無論在數據指針還是函數指針,一律都是遠指針。和緊湊模式一樣,靜態數據的總量不能超過64K。

              巨模式:巨模式取消了靜態數據的總量不能超過64K的的限制,來自不同源文件的碼放在不同的段內,來自不同源文件的靜態數據也放在不同的段內,只有堆棧是合在一起的。
          posted on 2008-02-11 11:57 alec的工作室 閱讀(618) 評論(1)  編輯  收藏

          FeedBack:
          # re: Turbo C 的六種編譯模式
          2008-07-22 15:12 | liguanyao
          請問一下這六種編譯模式如何設置?。?
          我寫了一個C源程序,大概600多行,編譯沒有問題,可是運行起來之后就有時候會自動退出,退出是隨時的,有時不退出,我懷疑是內存不足的原因,所以請教一下如何用大內存編譯。謝謝??!  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 和政县| 汤阴县| 罗平县| 上虞市| 连云港市| 郯城县| 抚宁县| 定边县| 海城市| 武宣县| 玉树县| 承德县| 阳江市| 合水县| 佳木斯市| 临邑县| 鱼台县| 普定县| 山阳县| 三穗县| 且末县| 吉隆县| 玉龙| 甘孜| 华坪县| 禄丰县| 温州市| 红桥区| 通海县| 如东县| 盈江县| 荆门市| 乾安县| 沙田区| 汽车| 剑川县| 大同市| 桂东县| 阳泉市| 新沂市| 上林县|