【求助】執行檔(.exe和.com)的不同



贊助商連結


hina0084
2002-12-09, 09:29 PM
請問這2種執行檔有何差異

贊助商連結


ranger
2002-12-09, 10:56 PM
那可以寫出一大篇文章出來.....
有興趣的可參考
旗標出版 施威銘著 MASM組合語言實務 技術手冊(一)
有較詳細的說明.......

Janova
2002-12-10, 12:23 AM
簡略而言.....
exe是執行檔....
com是系統檔....
com好像不能超過某一個大小.....

琥珀
2002-12-10, 12:42 AM
找找看!琥珀用Google搜尋關鍵字的結果:
http://www.google.com/search?hl=zh-TW&ie=UTF-8&oe=UTF-8&q=difference+between+.com+and+.exe&lr=

randy927
2002-12-17, 03:07 PM
最初由 Janova 發表
簡略而言.....
exe是執行檔....
com是系統檔....
com好像不能超過某一個大小.....
在我的印象裡.com好像是用組合語言寫的所以它的大小不會超過64KB.

ellery
2002-12-18, 09:52 PM
.com 檔沒有檔頭資訊
.exe 檔有檔頭資訊

以 DOS/Windows 的 .exe 檔而言,
檔頭一定以"MZ"兩字開始的
(可以用 ultraedit 或早期的 pctools 4.3 都看得到.)
這個"MZ"兩字是有典故的,
不過一時間想不起來 :D

其實, Windows 的 .exe 檔,
它的檔頭與 DOS 的 .exe 檔大同小異,
但是有多了程式碼用以判斷目前是在 DOS 下還是
Windows 下, 如果是 DOS 執行 Windows 的 .exe 程式
會秀出訊息"這程式只能在 Windows 下執行/無法在 DOS 下執行"後結束.

琥珀
2002-12-18, 10:12 PM
用組合語言寫的程式,執行會比較快速...應該吧?(現在的電腦處理速度,沒有差別了)

DDSC
2006-06-14, 04:07 PM
考古..... :D
COM是早期8bit所用的,如 CP/M等,COM DS,CS及SS都在同一64KB內,所以稱之不可重新定位,因為是64KB所以程式中的跳躍都是絕對值。
EXE是可重新定位的,再載入時系統會自動設定程式中有關遠跳躍及與DS,SS等相關的設定,EXE中的 CS,DS及SS都是獨立的(當然設計者可決定要不要分開)。
程式的結束方式二者不同。

考古完畢.....

琥珀
2015-10-14, 03:21 AM
What's the difference between the COM and EXE extensions? (http://blogs.msdn.com/b/oldnewthing/archive/2008/03/24/8332730.aspx)

找其他資料時,搜尋到的文章。溫故知新的你,應該會感興趣。

DDSC
2015-10-14, 09:42 AM
又考古了 XD

要簡單明了就是
COM 是不可定義定址的,所以只可在64K大小。
EXE格比較複雜,它是屬可定義定址,要等載入之後才知各區段(CS,DS,SS....)所在的值再去變更程式內的相關段值。
這是早期16位元要定址1MB空間所採用CS:IP方式(也就是每16BYTES為一段,因此0:0x40與0x04:0指的是同一個地方),不過也種下日後程式者對它的厭惡。

說真的 I 公司早在486時代就該取消這種CS:IP的真實模式,但,沒有,就為了向下相容.....