कॉम फाइल क्या है?
COM फाइलें केवल कमांड या निर्देशों के एक सेट को निष्पादित करने के लिए उपयोग की जाती हैं। COM फ़ाइल में एक निष्पादन योग्य प्रोग्राम होता है जो Windows या MS-DOS से चलने में सक्षम होता है। इसी तरह एक EXE फ़ाइल, COM फ़ाइल भी बाइनरी प्रारूप में सहेजी जाती है लेकिन यह EXE फ़ाइल से अलग है क्योंकि इसमें कोई हेडर या मेटाडेटा नहीं है और इसका अधिकतम आकार लगभग 64KB है। जब COM फ़ाइल पहली बार 32-बिट सिस्टम पर चलती है, तो यह NT वर्चुअल डॉस मशीन (NTVDM) घटक को स्थापित करने का संकेत देती है। COM फ़ाइल को Microsoft Windows के 64-बिट संस्करण पर वर्चुअल मशीन के साथ चलाया जा सकता है जो MS-DOS वातावरण का समर्थन करता है।
कॉम फ़ाइल स्वरूप
COM फ़ाइल स्वरूप एक बाइनरी निष्पादन योग्य प्रारूप है जिसका उपयोग Microsoft Windows या MS-DOS में किया जाता है। इसकी संरचना में केवल निर्देशों का एक सेट होता है; इसका कोई हेडर नहीं है और इसमें कोई मानक मेटाडेटा नहीं है। यह अपने सभी डेटा और कोड को केवल एक सेगमेंट में स्टोर करता है और इसके बाइनरी का आकार अधिकतम 64KB है। पुन: चलाने का प्रयास करते समय यह फ़ाइल स्वरूप स्वयं को स्थानांतरित नहीं करता है। तो ऑपरेटिंग सिस्टम इसे एक पूर्व निर्धारित पते पर लोड करता है। इसके अलावा, वसा बाइनरी के रूप में दोनों ऑपरेटिंग सिस्टमों के तहत निष्पादित करने के लिए एक COM फ़ाइल बनाना संभव है। निर्देश स्तर पर कोई वास्तविक अनुकूलता नहीं है। प्रवेश बिंदु पर निर्देश कार्यक्षमता में समान होने के लिए चुने गए हैं लेकिन दोनों ऑपरेटिंग सिस्टम में अलग हैं, और प्रोग्राम को चालू करते हैं, उपयोग में ऑपरेटिंग सिस्टम के अनुभाग पर जाएं। यह मूल रूप से एक ही फाइल में एक ही प्रक्रिया के साथ दो अलग-अलग प्रोग्राम हैं, पहले कोड का उपयोग करने के लिए एक का चयन करना।
COM फ़ाइल उदाहरण
COM फ़ाइल को निष्पादित करते समय, निर्देशों को पहले बाइट से पढ़ा जाता है और अंतिम निर्देश मिलने तक लगातार पालन किया जाता है। यहाँ एक एएसएम कोड उदाहरण है:
[BITS 16] ;Set code generation to 16 bit mode
[ORG 0x0100] ;Set code start address to 0100h
[SEGMENT .text] ;Main code segment
mov ah, 9 ; DOS print string function
mov dx, hello
int 21h
;Exit to DOS
mov ah, 4ch
int 21h
[SEGMENT .data] ;Initialised data segment
hello: db 'Hello, .COM programmer!',13,10,'$'