440ea43a88
Initially, I used the same letters as those used in the z80 ref docs, but it makes the different assemblers harder to use than they should. Having consistent "argtype" rules across assemblers should help.
17 lines
807 B
Plaintext
17 lines
807 B
Plaintext
The following words allow you to assemble z80 binaries. Being
|
|
Forth words, opcode assembly is a bit different than with a
|
|
typical assembler. For example, what would traditionally be
|
|
"ld a, b" would become "A B LDrr,".
|
|
|
|
The "argtype" prefix after each mnemonic is needed because the
|
|
assembler doesn't auto-detect the op's form based on arguments.
|
|
It has to be explicitly specified. "r" is for 8-bit registers,
|
|
"d" for 16-bit ones, "i" for immediate, "c" is for conditions.
|
|
Be aware that "SP" and "AF" refer to the same value: some 16-
|
|
bit ops can affect SP, others, AF. If you use the wrong argu-
|
|
ment on the wrong op, you will affect the wrong register.
|
|
|
|
Mnemonics having only a single form, such as PUSH and POP,
|
|
don't have argtype prefixes.
|
|
(cont.)
|