একটি COM ফাইল কি?
COM ফাইলগুলি কেবল কমান্ড বা নির্দেশাবলীর একটি সেট কার্যকর করার জন্য ব্যবহার করা হয়। একটি COM ফাইলে একটি এক্সিকিউটেবল প্রোগ্রাম থাকে যা উইন্ডোজ বা MS-DOS থেকে চালানো যায়। একইভাবে একটি EXE ফাইল, COM ফাইলটিও বাইনারি ফরম্যাটে সংরক্ষিত হয় তবে এটি EXE ফাইলের চেয়ে আলাদা কারণ এতে কোনো হেডার বা মেটাডেটা নেই এবং এটির সর্বোচ্চ আকার প্রায় 64KB। যখন COM ফাইলটি একটি 32-বিট সিস্টেমে প্রথমবার চলে, তখন এটি NT ভার্চুয়াল ডস মেশিন (NTVDM) উপাদান ইনস্টল করার জন্য অনুরোধ করে। COM ফাইলটি মাইক্রোসফট উইন্ডোজের 64-বিট সংস্করণে একটি ভার্চুয়াল মেশিনের সাহায্যে চালানো যেতে পারে যা MS-DOS পরিবেশকে সমর্থন করে।
COM ফাইল ফরম্যাট
COM ফাইল ফরম্যাট হল একটি বাইনারি এক্সিকিউটেবল ফরম্যাট যা Microsoft Windows বা MS-DOS-এ ব্যবহৃত হয়। এর গঠন শুধুমাত্র নির্দেশাবলীর একটি সেট নিয়ে গঠিত; এটির কোন শিরোনাম নেই এবং এতে কোন মানক মেটাডেটা নেই। এটি তার সমস্ত ডেটা এবং কোড শুধুমাত্র একটি বিভাগে সঞ্চয় করে এবং এর বাইনারিটির আকার সর্বাধিক 64KB। পুনরায় চালানোর চেষ্টা করার সময় এই ফাইল বিন্যাসটি নিজেকে স্থানান্তরিত করে না। তাই অপারেটিং সিস্টেম এটি একটি পূর্বনির্ধারিত ঠিকানায় লোড করে। তাছাড়া, উভয় অপারেটিং সিস্টেমের অধীনে একটি ফ্যাট বাইনারি আকারে চালানোর জন্য একটি COM ফাইল তৈরি করা সম্ভব। নির্দেশের স্তরে কোন প্রকৃত সামঞ্জস্য নেই। এন্ট্রি পয়েন্টের নির্দেশাবলী কার্যকারিতা সমান হলেও উভয় অপারেটিং সিস্টেমে ভিন্ন হওয়ার জন্য নির্বাচিত হয়েছে এবং প্রোগ্রাম চালু করতে, ব্যবহার করা অপারেটিং সিস্টেমের বিভাগে যান। এটি মূলত একটি একক ফাইলে একই পদ্ধতি সহ দুটি ভিন্ন প্রোগ্রাম, ব্যবহার করার জন্য কোড নির্বাচন করার আগে।
COM ফাইলের উদাহরণ
একটি COM ফাইল চালানোর সময়, নির্দেশাবলী প্রথম বাইট থেকে পড়া হয় এবং শেষ নির্দেশ না পাওয়া পর্যন্ত ধারাবাহিকভাবে অনুসরণ করা হয়। এখানে একটি ASM কোড উদাহরণ:
[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,'$'