Исполняемый файл DOS, CP/M | |
---|---|
Расширение |
.com |
Тип формата | двоичный, исполняемый |
Развит в | .EXE |
.COM (англ. command) — расширение файла, использовалось в некоторых операционных системах в различных целях.
В системах DOS и в 8-битной CP/M COM-файл — простой тип исполняемого файла, при выполнении которого данные, код и стек находятся в одном и том же 16-битном сегменте. Поэтому размер файла не может превышать 65280 байт (что на 256 байт меньше размера сегмента — 216 байт). COM-файлы для DOS можно выполнять в некоторых версиях Windows, а также на эмуляторах.
Кроме COM-файлов DOS поддерживает файлы в формате EXE, обладающие более сложной структурой. Тип файла определяется при запуске автоматически (в формате EXE в начале файла имеется специальная сигнатура), независимо от расширения.
Пример простой программы в формате .COM (для ассемблера FASM):
1 use16 ;Генерировать 16-битный код
2 org 100h ;Программа начинается с адреса 100h
3
4 mov dx, hello ;В DX адрес строки.
5 mov ah, 9 ;Номер функции DOS.
6 int 21h ;Обращение к функции DOS.
7
8 mov ax, 4C00h ;В регистр AH помещаем 4Ch, в AL – 00h.
9 int 21h ;Завершение программы
10 ;-------------------------------------------------------
11 hello db 'Hello, world!$'
Директива «use 16» указывает ассемблеру, что нужно генерировать 16-битный код.
Директива «org 100h» означает, что первая команда будет находиться по адресу 100h, а первые 256 байт (адреса 0000h – 00FFh) нужно пропустить (в этих адресах операционная система размещает префикс программного сегмента, PSP).
Далее идут команды.
Первой командой в регистр DX помещается адрес строки hello.
Затем вызывается прерывание DOS int 21h с функцией 9, которая выводит строку на экран.
При помощи функции 4Ch того же прерывания программа завершает работу (хотя здесь можно использовать и просто команду ret
).
Строка hello завершается символом ‘$’, который на экран не выводится, а сигнализирует конец строки для функции 9 прерывания int 21h[1].
Программы формата .COM не поддерживаются 64-разрядными верcиями Windows. В таком случае, для их запуска можно использовать эмулятор DOS, например DOSBox[1].
.COM — один из простейших форматов исполняемых файлов для процессоров семейства x86. Программа, загруженная в память для исполнения, является точной копией файла на диске[1].
Запуск COM-программы в MS-DOS происходит следующим образом[2]:
Модель памяти, используемую COM-программами, когда код программы, все её данные, PSP и стек расположены в одном сегменте, компиляторы высокоуровневых языков называют TINY (англ. tiny — крохотная).
COM-программы обычно являются небольшими приложениями, системными утилитами или небольшими резидентными программами[3].
Это заготовка статьи о формате файла. Вы можете помочь проекту, дополнив её. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .