Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

Исполняемый файл DOS, CP/M
Расширение .com
MIME-тип application/x-dosexec[1]
Тип формата двоичный, исполняемый
Развит в .EXE, .CMD

.COM (англ. command) — расширение файла, использовалось в некоторых операционных системах в различных целях.

Структура

В системах DOS и в 8-битной CP/M-80 COM-файл — простой тип исполняемого файла. Файла начинается с адреса 100h. В CP/M-80 может занимать адреса до верней границы TPA. В DOS и CP/m-86 при выполнении файла код, данные и стек находятся в одном и том же 16-битном сегменте. Поэтому размер файла не может превышать 65280 байт (что на 256 байт меньше размера сегмента — 216 байт). COM-файлы для DOS можно выполнять в некоторых версиях Windows, OS/2, а также на эмуляторах.

Кроме COM-файлов DOS поддерживает файлы в формате EXE, обладающие более сложной структурой. Тип файла определяется при запуске автоматически (в формате EXE в начале файла имеется специальная сигнатура), независимо от расширения. В CP/M-86 поддерживается файл формата .CMD.

Примеры

Пример простой программы в формате .COM (для ассемблера FASM):

use16               ;Генерировать 16-битный код
org 100h            ;Программа начинается с адреса 100h
 
    mov dx, hello   ;В DX адрес строки.
    mov ah, 9       ;Номер функции DOS.
    int 21h         ;Обращение к функции DOS.
 
    mov ax, 4C00h   ;В регистр AH помещаем 4Ch, в AL – 00h.
    int 21h         ;Завершение программы
;-------------------------------------------------------
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[2].

Совместимость

Программы формата .COM не поддерживаются 64-разрядными верcиями Windows. В таком случае, для их запуска можно использовать эмулятор DOS, например DOSBox[2].

Работа с памятью

.COM — один из простейших форматов исполняемых файлов для процессоров семейства 8080 и x86. Программа, загруженная в память для исполнения, является точной копией файла на диске[2].

Запуск COM-программы в MS-DOS происходит следующим образом[3]:

  1. Система выделяет свободный сегмент памяти и заносит его адрес во все сегментные регистры (CS, DS, ES и SS).
  2. В первые 256 байт этого сегмента записывается PSP.
  3. Непосредственно за ним загружается содержимое COM-файла без изменений.
  4. Указатель стека (регистр SP) устанавливается на конец сегмента.
  5. В стек записывается 0000h (адрес возврата для команды ret).
  6. Управление передаётся по адресу CS:0100h, где находится первый байт исполняемого файла.

Модель памяти, используемую COM-программами, когда код программы, все её данные, PSP и стек расположены в одном сегменте, компиляторы высокоуровневых языков называют TINY (англ. tiny — крохотная).

Использование

COM-программы обычно являются небольшими приложениями, системными утилитами или небольшими резидентными программами[4].

Примечания

  1. https://github.com/file/file/blob/FILE5_37/magic/Magdir/msdos#L556 — 2019.
  2. 1 2 3 "Форматы файлов для программ на FASM под Windows". Архивировано из оригинала 17 сентября 2018. Дата обращения: 17 сентября 2018.
  3. Фролов А., Фролов Г. MS-DOS для программиста. — М., 1995. — Т. 18.
  4. Банк лекций Siblec.ru - Электронная техника, радиотехника и связь. Формальные, технические, естественные, общественные, гуманитарные, и другие науки. 5.8. EXE- и COM-программы. Вычислительные машины, системы и сети. siblec.ru. Дата обращения: 17 сентября 2018. Архивировано 17 сентября 2018 года.
Эта страница в последний раз была отредактирована 25 января 2024 в 01:36.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).