flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
rCX 24 May 2009, 20:10
Are there advantages of using exe insted of com executables?
|
|||
![]() |
|
sinsi 25 May 2009, 06:05
And no.
|
|||
![]() |
|
Tomasz Grysztar 25 May 2009, 12:27
The non-MZ .com executable file cannot be larger than 64K, so if you need to have more code there, you are forced to use the MZ format. Though you can still disguise MZ with a .com extension - it's not the file extension that determines the type of executable.
Also, MZ has a nice feature of relocations, which non-MZ lacks. |
|||
![]() |
|
revolution 25 May 2009, 12:46
Plus the things I mentioned in my posting above. But you have to reveal the hidden to see what I wrote.
|
|||
![]() |
|
rCX 25 May 2009, 15:19
revolution wrote: A few to get you started: code+data>64kB, arbitrary entry point, pre-allocated segments, ... Tomasz Grysztar wrote: The non-MZ .com executable file cannot be larger than 64K, so if you need to have more code there, you are forced to use the MZ format. So for programs smaller than 64Kb com files are okay... |
|||
![]() |
|
Tomasz Grysztar 25 May 2009, 15:31
revolution wrote: pre-allocated segments Well, the .com program has the memory segments following the program segment pre-allocated aswell. |
|||
![]() |
|
revolution 25 May 2009, 15:45
pre-allocated segment[ register]s? I don't remember if DOS does this or not.
Last edited by revolution on 25 May 2009, 15:47; edited 1 time in total |
|||
![]() |
|
revolution 25 May 2009, 15:47
rCX wrote: So for programs smaller than 64Kb com files are okay... |
|||
![]() |
|
Borsuc 25 May 2009, 23:27
Can't you just load an external .bin file with more code?
![]() |
|||
![]() |
|
revolution 26 May 2009, 02:02
Yes, it is known as runtime linking. Often they come as DLL files. But that is no longer a single .exe or .com file anymore.
|
|||
![]() |
|
neville 27 May 2009, 05:30
I use FASM to create "memory image" executables up to about 512K in size (DOS memory limit). These are (or could be) DOS .COM programs with CS=DS=ES=SS, IP=0100h, SP=0FFFEh etc.
They CAN be run in DOS but not directly from the command prompt (only because DOS checks for >64K size). Instead, they can be loaded into DEBUG or other compatible debugger and executed with the "g" command. _________________ FAMOS - the first memory operating system |
|||
![]() |
|
DOS386 30 May 2009, 12:17
rCX wrote: Are there advantages of using exe insted of com executables? YES. * For MZ EXE you can control stack location and size, for COM it's just SS=CS and SP=$FFFE * For MZ EXE you can control memory hogging, COM always hogs the complete biggest fragment * MZ has a Sigi and header, safer to recognize (but DOS is stupid and loads broken MZ's and even EXE's having no MZ at all - as COM) * You can include Win32 stuff into a MZ EXE, OTOH not into a COM * MZ can be > 64 KiB (but has fixups then ![]() revolution wrote: Nothing as usual ... or is it hidden again ![]() See: http://board.flatassembler.net/topic.php?t=9834 |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.