PUSHM
|
Saving multiple registers
|
PUSHM
|
PUSH Multiple registers
|
[Syntax]
PUSHM src-src2
[Operation]
signed char i;
for ( i = register_num(src2); i >= register_num(src); i-- ) {
tmp = register(i);
SP = SP - 4;
*SP = tmp;
}
[Function]
- | This instruction saves values to the stack from the block of registers in the range specified by src and src2. |
- | The range is specified by first and last register numbers. Note that the condition (first register number < last register number) must be satisfied. |
- | The stack pointer in use is specified by the U bit in the PSW. |
- | Registers are saved in the stack from R15 to R1. |
[Instruction Format]
|
|
|
|
|
PUSHM src-src2
|
|
Rs
(Rs=R1~R14)
|
Rs2
(Rs2=R2~R15)
|
|
[Flag Change]
- | This instruction does not affect the states of flags. |
[Description Example]
PUSHM R1-R3
PUSHM R4-R8