2010-07-24 11 views
1

J'ai com sur un article qui indique que les fichiers .COM sont meilleurs pour les petites applications que les fichiers .EXE. Qu'est-ce que .COM fichiers? Comment créons-nous un fichier .COM? Comment sont-ils meilleurs que .EXE fichiers? Je veux également savoir si les fichiers .COM sont encore largement utilisés?Différence entre .COM et .EXE

Toutes suggestions.

+0

S'il vous plaît lire la FAQ. Ce site n'est pas pour des questions de programmation. C'est ce que Stack Overflow est pour. –

Répondre

8

Cet article date-t-il de 1985? COM files sont morts depuis longtemps, car ils sont seulement DOS, peuvent seulement être de 64 KiB et ont beaucoup d'autres problèmes.

Ils étaient un format beaucoup plus simple que EXE, car vous pouviez créer un exécutable com valide avec quelques lignes dans debug.exe ou un assembleur. Je deviens un peu nostalgique ici ...

+0

C'est 64 Ko pour le code * et * données, si je me souviens bien. Et je pensais aussi au "vieux magazine". –

+0

Exchange 2010 est livré avec un setup.com, donc ils ne sont pas * que * morts! –

+3

Ben, sont les deux premiers octets de ce setup.com 'MZ' par hasard? Cela voudrait dire que c'est vraiment un fichier exe. – Sven

0

Les fichiers COM est génial, car vous pouvez convertir magiquement l'exécutable en fichiers texte. Les fichiers EXE ont toujours un en-tête MZ alors que COM ne le fait pas. Comme vous pouvez générer du code dynamiquement dans l'architecture x86, vous pouvez générer des opcodes binaires en utilisant des opcodes dans des caractères imprimables.

Voici un exemple, le programme README.COM:

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

Dans cet exemple, les opcodes bootstrap génèrent une interruption de 21H DOS INT pour afficher une chaîne terminée par '$'.

Certains anciens compilateurs peuvent avoir des options pour prendre en charge le fichier .COM, mais comme il s'agit d'un exécutable 16 bits, ils ne sont plus pris en charge depuis de nombreuses années.

+1

C'est exactement ce que je cherche! Pouvez-vous élaborer sur ce sujet? Peut-être pointez-moi vers une documentation comment vous avez écrit votre programme là-bas? – mrduclaw

+1

Eh bien, ... 诀窍 就 在于 尝试 尝试, 首先 你 必须 有份 机器码 对照 表, 然后 不停 转动 脑筋 脑筋, 因为 不是 每个 指令 都能, 你 只能 挑选 那些 代码 凑巧 –

+1

L'astuce consiste à continuer à essayer, tout d'abord, vous devez avoir pris la table de code de la machine à portée de main , puis tourné dans votre cerveau, parce que pas toutes les commandes peuvent être utilisées, vous pouvez seulement choisir ce code qui se trouve être une lettre d'instruction, Essayez, et ainsi de suite peut être. Parfois, cela dépend de la chance, mais plus d'un besoin d'être patient. –