2011-05-19 150 views

回答

4

.com,.exe擴展名告訴DOS或Windows操作系統該文件是可執行文件。文件擴展名(.com,.exe)本身並不會告訴操作系統底層指令集是什麼。對於擴展名爲.exe的Windows可執行文件,指令集在文件的前幾個字節(PE標頭)中指定。

最初的DOS .com文件只包含一組操作系統(即DOS)將加載到固定地址並從第一條指令執行的指令。這些類型的.com文件是「傳統」的。如果沒有仿真,它們不能在現代操作系統上運行。這種類型的.com文件可以在CP/M和更高版本的DOS上找到,但只能在它們最初設計的操作系統和指令體系結構上運行。您可以通過仿真在其他操作系統上運行它們。例如dosbox在Linux上運行DOS .com文件。 DOS的更高版本,然後是Windows查看.com文件以查看它們是否真的是LE/PE可執行文件。如果它們是執行它們,就好像它們具有.exe擴展名一樣。 Visual Studio提供一些帶有.com擴展名的文件。有關詳情,請參閱http://blogs.msdn.com/b/oldnewthing/archive/2008/03/24/8332730.aspx

1

從技術上講,可執行文件只是一個二進制文件。它只是在Windows操作系統上,你需要一個文件擴展名的可執行文件。否則你是正確的。我不確定傳統com的具體情況,它可能會被官方棄用,但仍有一些運行在現代版本的windows上。

1

.com和.exe的通常是x86代碼。儘管維基百科文章http://en.wikipedia.org/wiki/COM_file提到了.com擴展以cp/m的形式出現,但這是較舊的。

雖然現在的DOS和Windows模擬器存在於其他可以運行這些模塊的平臺上,但它們並不是「有意移植的」。

像.py(python)和.jar(編譯的java)這樣的文件類型可以在任何CPU和任何操作系統上運行,只要它們安裝了「平臺」(分別爲Python或JRE)。

相關問題