Diferencia entre .COM y .EXE

He com en un artículo que dice que los archivos .COM son mejores para aplicaciones pequeñas que los archivos .EXE . ¿Qué son los archivos .COM ? ¿Cómo creamos un archivo .COM ? ¿Cómo son mejores que los archivos .EXE ? ¿También quiero saber si los archivos .COM todavía se utilizan ampliamente?

Alguna sugerencia.

¿Este artículo vino de 1985? Los archivos COM llevan mucho tiempo muertos, ya que solo son DOS, pueden tener solo 64 KiB y tienen muchos otros problemas.

Solían ser un formato mucho más simple que EXE, ya que podría crear un ejecutable com válido con unas pocas líneas en debug.exe o un ensamblador. Me estoy poniendo un poco nostálgico aquí …

Los archivos COM son geniales, porque puedes convertir los archivos ejecutables mágicamente en archivos de texto. Los archivos EXE siempre tienen un encabezado MZ mientras que COM no. Como puede generar código dinámicamente en el arco x86, puede generar códigos de operación binarios utilizando códigos de operación en caracteres imprimibles.

Aquí hay un ejemplo, progtwig README.COM:

 P5CQ5sPP[X5iK4iH4]P_1?CC5IQ5CBP_1?SX4v4pPZ5iH5i@okey Text2COM example by 谢继雷 (Lenik). $ 

En este ejemplo, los códigos de operación bootstrap generan una interrupción DOS INT 21H para mostrar una cadena terminada por ‘$’.

Algunos comstackdores antiguos pueden tener algunas opciones para admitir archivos .COM, pero como es un ejecutable de 16 bits, no han sido compatibles durante muchos años.