2010-07-24 2 views
1

У меня есть статья, в которой говорится, что файлы .COM лучше подходят для небольшого приложения, чем файлы .EXE. Что такое .COM? Как мы создаем файл .COM? Как они лучше, чем .EXE? Я также хочу знать, все еще широко используются файлы .COM?Разница между .COM и .EXE

Любые предложения.

+0

Пожалуйста, прочтите FAQ. Этот сайт не предназначен для программирования вопросов. Для этого используется переполнение стека. –

ответ

8

Была ли эта статья выпущена в 1985 году? COM files давно мертвы, поскольку они только DOS, могут быть только 64 KiB и иметь много других проблем.

Раньше они были более простым форматом, чем EXE, поскольку вы могли создать действительный COM-исполняемый файл с несколькими строками в debug.exe или ассемблером. Я немного ностальгирую здесь ...

+0

Это 64K для кода * и * данных, если я правильно помню. И я тоже думал о «старом журнале». –

+0

Exchange 2010 поставляется с setup.com, поэтому они не *, которые * мертвы! –

+3

Бен, первые два байта этой setup.com «MZ» случайно? Это означало бы, что это действительно файл exe. – Sven

0

COM-файлы великолепны, потому что вы можете конвертировать исполняемые файлы магически в текстовые файлы. Файлы EXE всегда имеют заголовок MZ, а COM - нет. Поскольку вы можете генерировать код динамически в арсенале x86, вы можете генерировать двоичные коды операций, используя коды операций в печатных символах.

Ниже приведен пример, программа README.COM:

P5CQ5sPP[X5iK4iH4][email protected] 
Text2COM example by 谢继雷 (Lenik). 
$ 

В этом примере бутстраповские опкоды генерировать прерывание INT 21H DOS, чтобы отобразить строку, заканчивающуюся «$».

Некоторые старые компиляторы могут иметь некоторые опции для поддержки файла .COM, но поскольку это 16-разрядный исполняемый файл, они не поддерживаются в течение многих лет.

+1

Это именно то, что я ищу! Можете ли вы рассказать об этом? Возможно, укажите мне какую-то документацию, как там написана ваша программа? – mrduclaw

+1

Ну, ... 诀窍 就 在于 不停 的 尝试, 首先 你 手头 必须 有份 机器码 对照, 然后 不停 的 转动 你 的 用, 因为 不是 每个 指令 代码 凑巧, 你 只能 挑选 那些 代码 凑巧是 字母 的 指令, 组合, 尝试, 如此 反复 即可. 有时候 这 要靠 运气, 不过 更多 的 是 需要 耐心. –

+1

Трюк заключается в том, чтобы продолжать попытки, прежде всего, вы должны были взять таблицу кодов машин под рукой , а затем вращается в вашем мозгу, потому что не каждая команда может быть использована, вы можете выбрать только тот код, который является буквой инструкции, комбинированной Try и т. д. Иногда это зависит от удачи, но больше нужно быть терпеливым. –

Смежные вопросы