擴(kuò)展名為“.EXE”或“.COM”?!?EXE”和“.COM”是兩種二進(jìn)制可執(zhí)行文件,EXE文件可以加載到內(nèi)存中,由操作系統(tǒng)加載并執(zhí)行;COM被用做包含操作系統(tǒng)支持命令的文本文件的拓展名,COM文件中沒(méi)有附帶任何支持性數(shù)據(jù),僅包含可執(zhí)行代碼,文件頭即為第一句執(zhí)行指令。
本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
能由鍵盤命令調(diào)入內(nèi)存直接執(zhí)行的磁盤文件的擴(kuò)展名為“.EXE”或“.COM”。它們是windows操作系統(tǒng)中的二進(jìn)制可執(zhí)行文件。
擴(kuò)展名 EXE
擴(kuò)展名為“.EXE”的是可執(zhí)行程序,是可在操作系統(tǒng)存儲(chǔ)空間中浮動(dòng)定位的二進(jìn)制可執(zhí)行程序。它可以加載到內(nèi)存中,由操作系統(tǒng)加載并執(zhí)行。特定的CPU指令集(如X86指令集)對(duì)應(yīng)的不同平臺(tái)之間的可執(zhí)行程序不可直接移植運(yùn)行。
EXE文件分為兩個(gè)部分: EXE文件頭和程序本體。exe文件比較復(fù)雜,屬于一種多段的結(jié)構(gòu),是DOS最成功和復(fù)雜的設(shè)計(jì)之一。每個(gè)exe文件包含一個(gè)文件頭和一個(gè)可重定位程序的映像。文件頭包含MS-DOS用于加載程序的信息,例如程序的大小和寄存器的初始值。文件頭還指向一個(gè)重定位表,該表包含指向程序映像中可重定位段地址的指針鏈表。MS-DOS通過(guò)把該映像直接從文件復(fù)制到內(nèi)存加載exe程序,然后調(diào)整定位表中說(shuō)明的可重定位段地址。定位表是一個(gè)重定位指針數(shù)組,每個(gè)指向程序映像中的可重定位段地址。
擴(kuò)展名 COM
COM格式文件是一種簡(jiǎn)單的可執(zhí)行文件。在迪吉多公司于20世紀(jì)70年代推出的操作系統(tǒng)中,.COM被用做包含操作系統(tǒng)支持命令的文本文件的拓展名(類似于Windows系統(tǒng)的.cmd文件)。隨著引進(jìn)CP/M的引進(jìn)(微型計(jì)算機(jī)的操作系統(tǒng)),COM擴(kuò)展相的文件改變?yōu)榈目蓤?zhí)行文件。該格式后來(lái)被結(jié)轉(zhuǎn)到MS-DOS。雖然MS-DOS中已有更常見(jiàn)的.exe文件格式的,緊湊的COM文件仍然保持活力,并在MS-DOS頻繁使用。
COM文件中沒(méi)有附帶任何支持性數(shù)據(jù),僅包含可執(zhí)行代碼。文件頭即為第一句執(zhí)行指令。沒(méi)有重定位的信息,這樣代碼中不能有跨內(nèi)存段(segment)操作數(shù)據(jù)的指令,因此代碼與數(shù)據(jù)只能限制在同一個(gè)64KB的內(nèi)存段中。
基于Windows NT的操作系統(tǒng)使用.com擴(kuò)展名來(lái)處理從MS-DOS時(shí)間傳輸?shù)纳倭棵睿M管它們實(shí)際上當(dāng)前實(shí)現(xiàn)為.exe文件。 操作系統(tǒng)將識(shí)別.exe文件頭并正確執(zhí)行它們,盡管它們?cè)诩夹g(shù)上不正確的.com擴(kuò)展名。 (事實(shí)上,任何.exe文件都可以重命名.com并且仍然可以正確執(zhí)行。)對(duì)這些命令使用原始.com擴(kuò)展可確保與舊的MS-DOS批處理文件兼容,這些文件可能使用完整的原始文件名引用它們。 這些命令是chcp.com,discomp.com,diskcopy.com,format.com,mode.com,more.com和tree.com。
擴(kuò)展知識(shí):
windows操作系統(tǒng)中的二進(jìn)制可執(zhí)行文件分兩種:一種后輟名為.COM,另一種是.EXE 。
在MS-DOS下,有重名的.EXE文件和.COM文件運(yùn)行時(shí),優(yōu)先執(zhí)行.COM文件。如果只有A.EXE,就可以直接輸入"A",而不用輸入全名。但如果有A.COM和A.EXE,輸入A則優(yōu)先執(zhí)行A.COM,要運(yùn)行A.EXE只能輸入A.EXE而不能輸入A。
在WINDOWS系統(tǒng)中的執(zhí)行文件一般都是.EXE文件。在windows中,用戶在命令提示符輸入不帶 .exe 擴(kuò)展名的文件名后按 Enter 鍵或者點(diǎn)雙擊就能運(yùn)行可執(zhí)行程序。
linux不像MS-DOS/windows一樣靠文件后綴名來(lái)判斷是否可執(zhí)行,而是靠文件屬性來(lái)判斷。每個(gè)文件專門有個(gè)屬性來(lái)表示文件是否可執(zhí)行,對(duì)于腳本之類的程序,文件第一行指明執(zhí)行本腳本的程序位置。