Quote:
Originally Posted by DuckieTigger
Well, not quite. It becomes very unreadable or understandable
|
wait..as opposed to 'derstandable?'
Quote:
when using self changing code
|
That was a HUGE no-no in my assembler classes in college!
I attribute the intentional use of self-modifying code to the realm of AI and other areas where one is unlikely to be writing in assembler.
Quote:
Still say it is a compiler - unless you don't consider higher level compilers to be still assembly language (e.g. Microsoft's macro assembler).
|
Certainly one can add high-level features and blur the lines, but at the basic level to my mind (without actually looking up definitions) I have always thought of an assembler as doing that direct 1-to-1 substitution into the proper file formats, directly replacing mnemonics with instruction codes, labels with addresses, and that's pretty much it...it assembles the code you wrote directly into the machine format. The code you write is exactly the code that executes and that's it.
Leaving out high-level ease-of-use stuff like in MASM, any assembler for a system will always produce the same machine code from the same assembly code.
A compiler, on the other hand, takes in arbitrarily defined function names, flow control, logic and data structures and compiles the needed implementation, which the coder may never see or fully understand, and two compilers may generate totally different machine code from the same source code.
Any ways, fun stuff, and makes me long for the old days.
ApK