Contents | < Browse | Browse >
15B. the inline assembler compared to a macro assembler
-------------------------------------------------------
The inline assembler differs somewhat from your average macro-assembler,
and this is caused mainly by the fact that it is an extension to E,
and thus it obeys E-syntax. Main differences:

- comments are with /* */ and not with ";", they have a different meaning.
- keywords and registers are in uppercase, everything is case sensitive
- no macros and other luxury assembler stuff (well, there's the complete
  E language to make up for that ...)
- You should be aware that registers A4/A5 may not be trashed by inline
  assembly code, as these are used by E code. Also, if your code
  can be called by code that is register-allocated, you should preserve
  D3-D7. an instruction like

	MOVEM.L D3-D7,-(A7); /* inline asm */; MOVEM.L (A7)+,D3-D7

  should help if problems occur.
- no support for LARGE model/reloc-hunks in assembly _YET_.
  This means practically that you have to use (PC)-relative addressing
  for now (which is faster anyway).