PUSHM

複数レジスタの退避

PUSHM

PUSH Multiple registers


【構文】

PUSHM src-src2

 

【オペレーション】

signed char i;

for ( i = register_num(src2); i >= register_num(src); i-- ) {

tmp = register(i);

SP = SP - 4;

*SP = tmp;

}

 

【機能】

-

srcとsrc2で範囲指定したレジスタを一括してスタックに退避します。

-

範囲は、先頭レジスタ番号と最終レジスタ番号で指定します。ただし、(先頭レジスタのレジスタ番号<最終レジスタのレジスタ番号)となっている必要があります。

-

R0を指定することはできません。

-

使用されるスタックポインタは、PSWのUビットで示すスタックポインタになります。

-

スタックに退避する順序はR15から退避します。

 

【命令フォーマット】

構文

処理

サイズ

src

src2

コードサイズ

(バイト)

PUSHM src-src2

L

Rs

(Rs=R1〜R14)

Rs2

(Rs2=R2〜R15)

2

 

【フラグ変化】

フラグ変化はありません。

 

【記述例】

PUSHM   R1-R3
PUSHM   R4-R8