Syntax: LD Rd,<addr mode>
Operation: Rd = [<addr mode>]
Flags: None
This operation loads Rd from the contents of the <addr mode>
It can take several forms:
LD Rd,X Load indirect
LD Rd,X+ Load indirect with post-increment
LD Rd,-X Load indirect with pre-decrement
LD Rd,Y Load indirect
LD Rd,Y+ Load indirect with post-increment
LD Rd,-Y Load indirect with pre-decrement
LDD Rd,Y+q Load indirect with displacement
LD Rd,Z Load indirect
LD Rd,Z+ Load indirect with post-increment
LD Rd,-Z Load indirect with pre-decrement
LDD Rd,Z+q Load indirect with displacement
Indirect addressing
Syntax: LD Rd,{X|Y|Z}
Operation: Rd = [{X|Y|Z}]
Flags: None
This loads the register from the memory
location pointed to by the X,Y or Z registers.
Example:
LD R5,X
LD R31,Z
Post-Increment addressing
Syntax: LD Rd,{X|Y|Z}+
Operation: Rd = [{X|Y|Z}] : {X|Y|Z} += 1
Flags: None
This loads the register from the memory
location pointed to by the X,Y or Z registers,
and then increments the indirect register.
Example:
LD R5,X+
LD R31,Y+
Pre-decrement addressing
Syntax: LD Rd,-{X|Y|Z}
Operation: {X|Y|Z} -= 1 : Rd = [{X|Y|Z}]
Flags: None
This decrements the index register and then
loads the destination register from the memory
location pointed to by the X,Y or Z registers.
Example:
LD R5,-Y
LD R31,-Z
Displaced addressing
Syntax: LD Rd,{Y|Z} + k
Operation: Rd = [{Y|Z} + k]
Flags: None
This loads the destination register from the memory
location pointed to by the Y or Z registers + the
displacement provided in the instruction. k must be
less than 64.
Example:
LDD R5,Y + 31
LDD R31,Z + 10
|
|
|