home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!cs.utexas.edu!swrinde!ringer!mlevis
- From: mlevis@ringer.cs.utsa.edu (Mike Levis)
- Newsgroups: comp.os.msdos.programmer
- Subject: Re: studying executables
- Message-ID: <1992Sep7.034936.28892@ringer.cs.utsa.edu>
- Date: 7 Sep 92 03:49:36 GMT
- References: <ARA.92Sep6131908@camelot.ai.mit.edu> <1992Sep6.232408.11684@zooid.guild.org>
- Distribution: comp
- Organization: University of Texas at San Antonio
- Lines: 36
-
- In article <1992Sep6.232408.11684@zooid.guild.org> ross@zooid.guild.org (Ross Ridge) writes:
- >ara@zurich.ai.mit.edu (Allan Adler) writes:
- [...]
- >>First, it seems to me that every compiler and every assembler must have its
- >>own idiosyncratic way of producing the executable. Is that true?
- >
- >For compilers yes, for assemblers no. With assemblers every byte of
- >the execuatable is under the programmers control.
-
- Actually, assemblers have their own way of producing executables, too.
- There is a share-ware assembler (I think it is called A86) that even
- says that it creates opcodes different from other assemblers. This
- way, the author can sue unregistered owners for not registering.
- There are different ways an assembler can create a "fingerprint".
- One example is ``MOV BX, AX''. An assembler can generate either
- ``89h C3h'' or ``8Bh D8h'' for the opcode (I don't have A86, so I
- don't know which opcode set it uses for ``MOV BX, AX'').
-
- Likewise, an assembler can optimize the code for speed and/or size.
- For example, I have TASM, which converts a far call into the same
- segment into a push cs and near call.
-
- TASM also automatically generates code for you, such as when using
- Language modifiers. For example, you can call a C function from
- your ASM program. TASM will push your parameters (using the C
- parameter passing protocol), make the call, then adjust the stack
- for you.
-
- [...]
-
-
- --
- ==== Mike Levis mlevis@ringer.cs.utsa.edu ====
- :: ftp ftp.cs.widener.edu (147.31.254.132) :: .--.
- :: for ``The Simpsons'' information. Get :: (OS/2)
- :::: ``Simpsons'' FAQL in dir /pub/simpsons :::: ~--~
-