work in progress...
Do nothing
Load unconditionally / load if Zero flag is set (1) / load if Zero flag is reset (0)
NOTE: all LD
instructions can be also used as LDZ
and LDNZ
variants.
This also applies to aliases of load instruction, i.e. jump, output and input.
Load AL
(low byte of A/R3 register) with a immediate byte
Load AH
(high byte of A/R3 register) with a immediate byte
Load value from Rx
to Ry
, i.e. Rx --> Ry
NOTE: LD R0, Rx
is a jump instruction
Jump to address stored in Rx
Load value from memory at address stored in Rx
to Ry
, i.e. (Rx) --> Ry
Load value from Rx
to memory at address stored in Ry
, i.e. Rx --> (Ry)
Output a value from Rx
to output port y
Input a value from input port x
to Rx
Add value of Ry
to Rx
, i.e. Rx += Ry
, set flags accordingly
Subtract value of Rx
from Ry
, i.e. Rx -= Ry
, set flags accordingly
Compare value of Rx
to Ry
, only set flags
Binary AND Rx
with Ry
, i.e. Rx &= Ry
, set flags accordingly
Binary OR Rx
with Ry
, i.e. Rx |= Ry
, set flags accordingly
Binary XOR Rx
with Ry
, i.e. Rx ^= Ry
, set flags accordingly
Increase value of Rx
, set flags accordingly
Decrease value of Rx
, set flags accordingly
Execute LDAL
and LDAH
on low and high bytes of given word
Execute LDA
to load a word into A / R3
and then load it to Rx
NOTE: this macro overwrites A / R3
Execute LDA
to load an address into A / R3
and then jump to the given address
NOTE: this macro overwrites A / R3
Execute LDA
to load an address into A / R3
,
push return address to stack and jump to the given address.
NOTE: this macro overwrites A / R3
Pop return address from stack to A / R3
and then jump to the return address.
NOTE: this macro overwrites A / R3
Decrease stack pointer R1
and load value of Rx
to the memory at new stack pointer.
Load value from memory at current stack pointer R1
to Rx
, increase stack pointer.