aspose.info
HE

COM - פורמט קובץ פקודת DOS

עודכן

מהו קובץ COM?

קובצי ה-COM משמשים פשוט לביצוע קבוצה של פקודות או הוראות. קובץ COM מורכב מתוכנת הפעלה שניתן להפעיל מ-Windows או MS-DOS. כמו כן קובץ EXE, גם קובץ ה-COM נשמר בפורמט בינארי אבל הוא שונה מקובץ EXE כי אין לו כותרת או מטא נתונים וגם יש לו גודל מקסימלי של 64KB בערך. כאשר קובץ ה-COM פועל בפעם הראשונה על מערכת 32 סיביות, הוא מבקש להתקין את הרכיב NT Virtual DOS Machine (NTVDM). ניתן להפעיל את קובץ ה-COM בגרסת 64 סיביות של Microsoft Windows עם מכונה וירטואלית התומכת בסביבת 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,'$'

הפניות

ראו גם