Róznice i cechy plików wykonawczych *.com i *.exe

Witam Was poszukuje tak jak w temacie cech i róznic tych plików wykonawczych bardzo Was prosze o pomoc!

plik com pracują w jednym segmencie kodu i danych, pliki exe w wielu. Kiedyś pliki wykonywalne com wystarczały , teraz aplikacje są bardziej rozbudowane i wymagają więcej miejsca zarówno na dane jaki na swój kod.

słyszałem ze pliki EXE zabierają tyle ranu na ile pozwala a COM 64k jeszcze jakieś cechy można wyróżnic?

Jeśli naprawdę tego chcesz … :wink:

plik COM odwzorowuje 1:1 jak wygląda kod i dane w pamięci, plik EXE wymaga realokacji (dlatego potrzebuje większego nagłówka) czyli przesuwasz/pokazujesz gdzie znajdują się dane/kod w pamięci (moze to być kilka segmentów). COM limit 64kilo, EXE do granicy RAMU (jeśli ci linker pozwoli).

EXE zaczynają sie zwykle nagłówkiem (początek nagłówka to charakterystyczne “MZ”). Pliki COM zawsze wczytują się pod adres “100h” (hex) (mają dyrektywę org 100h na starcie), EXE gdziekolwiek im każesz :wink: Plik COM zamienisz na EXE ale nie na odwrót. Stos w COM jest mniejszy bo mieścisz się w 64k + kod + dane (problem występuje przy rekurencji). Przykład pliku com? Command.com w MS-DOS. Przykład EXE? cmd.exe z Windowsa. Tyle z większych różnic.