Talk:DOS executable (.com)
From Just Solve the File Format Problem
(Difference between revisions)
(→compressed executable vs commandline program) |
(→fixed vs relative addressing?) |
||
(One intermediate revision by one user not shown) | |||
Line 1: | Line 1: | ||
+ | == fixed vs relative addressing? == | ||
+ | |||
+ | re ''They can only use relative adressing'' - in 8086 mode, a memory address is either | ||
+ | - relative within a segment, | ||
+ | - absolute within a segment | ||
+ | - absolute including a segment address | ||
+ | |||
+ | While it is unknown what segment a given COM file will be loaded into, it IS known (as specified) that it will be loaded from offset 0x100 into that segment. So intra-segment absolute addressing is perfectly valid. [[User talk:jonnosan|jonnosan]] 8:26 21 May 2013(UTC) | ||
+ | |||
+ | :That's true, the wording could be made slightly clearer. It's not relative vs. absolute addressing itself which is the problem. Relative and "intra-segment absolute" addressing differ only in the instruction opcode used, which the assembler chooses on its own, without the programmer specifying it. Of course, absolute references to fixed segments (c000:0, b800:0, etc.) are also possible in COM files. Feel free to rephrase it :) -[[User:Darkstar|Darkstar]] ([[User talk:Darkstar|talk]]) 18:35, 21 May 2013 (UTC) | ||
+ | |||
== compressed executable vs commandline program == | == compressed executable vs commandline program == | ||
Latest revision as of 18:35, 21 May 2013
[edit] fixed vs relative addressing?
re They can only use relative adressing - in 8086 mode, a memory address is either - relative within a segment, - absolute within a segment - absolute including a segment address
While it is unknown what segment a given COM file will be loaded into, it IS known (as specified) that it will be loaded from offset 0x100 into that segment. So intra-segment absolute addressing is perfectly valid. jonnosan 8:26 21 May 2013(UTC)
- That's true, the wording could be made slightly clearer. It's not relative vs. absolute addressing itself which is the problem. Relative and "intra-segment absolute" addressing differ only in the instruction opcode used, which the assembler chooses on its own, without the programmer specifying it. Of course, absolute references to fixed segments (c000:0, b800:0, etc.) are also possible in COM files. Feel free to rephrase it :) -Darkstar (talk) 18:35, 21 May 2013 (UTC)
[edit] compressed executable vs commandline program
Thanks for fixing the initial page. My source, a paper about the file utility mentioned .com files being compressed executables. Guess I should cite more... Maurice.de.rooij (talk) 07:28, 6 December 2012 (UTC)
- Ah, yes, that seems a bit wrong (unless they talk about some other, specific COM file). I wanted to add COM some time ago anyway (when I did EXE), but it somehow got lost due to my being busy recently. I just happened to notice it in the "recent changes" and fixed it. On some unrelated note, why can't we delete (or move/rename) any pages? There are a few now that are blanked because they were moved. Is delete/move only for administrators? --Darkstar (talk) 17:22, 6 December 2012 (UTC)
- "Move" exists in the pull-down menu to the right of "View history". I think "Delete" is reserved for admins, though. Dan Tobias (talk) 18:16, 6 December 2012 (UTC)
- There seems not to exist such thing as compressed executable COM file, after an extensive search on the Google. Because the source was a university paper, I wrongly assumed that it didnt need verification. Another lesson learned... Maurice.de.rooij (talk) 18:37, 6 December 2012 (UTC)