請問這2種執行檔有何差異
請問這2種執行檔有何差異
找找看!琥珀用Google搜尋關鍵字的結果:
http://www.google.com/search?hl=zh-T...m+and+.exe&lr=
在我的印象裡.com好像是用組合語言寫的所以它的大小不會超過64KB.最初由 Janova 發表
簡略而言.....
exe是執行檔....
com是系統檔....
com好像不能超過某一個大小.....
K.L.P.P長篇鬼故事。不要學電腦,不要學英文。治療癌症的第三條路。擇偶有時候不要太挑。上班族物語。
天下有兩難~登天難,求人更難 地上有兩苦~黃蓮苦,貧窮更苦 世間有兩險~江湖險,人心更險 人間有兩薄~春冰薄,人情更薄 知其難、忍其苦、測其險、耐其薄,可處事矣!
.com 檔沒有檔頭資訊
.exe 檔有檔頭資訊
以 DOS/Windows 的 .exe 檔而言,
檔頭一定以"MZ"兩字開始的
(可以用 ultraedit 或早期的 pctools 4.3 都看得到.)
這個"MZ"兩字是有典故的,
不過一時間想不起來
其實, Windows 的 .exe 檔,
它的檔頭與 DOS 的 .exe 檔大同小異,
但是有多了程式碼用以判斷目前是在 DOS 下還是
Windows 下, 如果是 DOS 執行 Windows 的 .exe 程式
會秀出訊息"這程式只能在 Windows 下執行/無法在 DOS 下執行"後結束.
用組合語言寫的程式,執行會比較快速...應該吧?(現在的電腦處理速度,沒有差別了)
考古.....
COM是早期8bit所用的,如 CP/M等,COM DS,CS及SS都在同一64KB內,所以稱之不可重新定位,因為是64KB所以程式中的跳躍都是絕對值。
EXE是可重新定位的,再載入時系統會自動設定程式中有關遠跳躍及與DS,SS等相關的設定,EXE中的 CS,DS及SS都是獨立的(當然設計者可決定要不要分開)。
程式的結束方式二者不同。
考古完畢.....
What's the difference between the COM and EXE extensions?
找其他資料時,搜尋到的文章。溫故知新的你,應該會感興趣。
又考古了 XD
要簡單明了就是
COM 是不可定義定址的,所以只可在64K大小。
EXE格比較複雜,它是屬可定義定址,要等載入之後才知各區段(CS,DS,SS....)所在的值再去變更程式內的相關段值。
這是早期16位元要定址1MB空間所採用CS:IP方式(也就是每16BYTES為一段,因此0:0x40與0x04:0指的是同一個地方),不過也種下日後程式者對它的厭惡。
說真的 I 公司早在486時代就該取消這種CS:IP的真實模式,但,沒有,就為了向下相容.....
此文章於 2015-10-14 09:45 AM 被 DDSC 編輯。
書籤