In said:
Righty-ho. I forgot assembler was a different thing from raw machine
code. However, it's not *MUCH* different. IMHO there should be a 1-1
correspondence between an assembler instruction and the generated
machine code instruction. But YOMBD.
Such a correspondence ceased to exist by the time macroassemblers have
been introduced, long before you were born.
A more accurate definition is that it is possible to control each
generated instruction from an assembly source code.
But even then, there are assemblers that can automatically fix
programmer mistakes: an out of range branch can be replaced by a short
branch on the opposite condition and a jump to the desired label.
I've used such an assembler as the back end of a C compiler that didn't
bother to check the validity of its generated branches (DECUS C on the
PDP-11).
Dan