Найти тему

Размер COM-файла

Те, кто начинает изучать язык ассемблера, в начале своего пути обычно тренируются “на кошках” (молодые, наверно, шутку не поймут))). Я хотел сказать, что первая программа любого начинающего любителя ассемблера - это COM-файл. То есть файл с расширением COM.

Это самый простой тип исполняемых файлов (программ) для DOS/Windows. Он не содержит практически ничего, кроме машинных кодов. В отличие, например, от EXE-файла, который включает в себя ещё много всякой лабуды.

Так что проще всего начинать кодить на асме именно с таких простейших программ. Однако у этого вида есть некоторые недостатки.

Во-первых, в современных Windows, вы его, скорее всего, не запустите, и увидите такое сообщение:

-2

Это не страшно. Потому что, как правило, изучать ассемблер начинают с помощью специальных средств разработки с отладчиками, где можно проверить свои программы, даже если они не запускаются непосредственно из под Windows. Лично я использую emu8086. Хотя есть и другие.

Кроме того, СОМ-программу можно запустить в каком либо эмуляторе DOS (например, вот в этом) или на виртуальной DOS-машине.

Второй недостаток более ощутим - это ограничение на размер файла. Размер COM-файла не может превышать 64 КБ. И это, конечно, по современным меркам очень мало. Например, пустое окно Windows, созданное в современных средствах разработки, которое ничего не делает, весит несколько МБ или даже несколько десятков МБ (зависит от режима компиляции и среды разработки).

Однако и это не страшно. Потому что на ассемблере в 64 КБ можно уместить не так уж и мало. Например, известный в своё время Volkov Commander - файловый менеджер для DOS, как раз и был программой типа СОМ, то есть умещался в 64 КБ.

Ну и к тому же сегодня СОМ-файлы используются, в основном, для учебных целей. Так что в данном случае размер не имеет значения. Хотя знать об этом надо, если вы решили освоить такую забавную вещь, как ассемблер.

Ну что же, на этом всё. Надеюсь, небольшая прогулка в прошлое была интересной )))

Подписывайтесь на канал, чтобы ничего не пропустить.