POPM

複数レジスタの復帰

POPM

POP Multiple registers


【構文】

POPM dest-dest2

【オペレーション】

signed char i;

for ( i = register_num(dest); i <= register_num(dest2); i++ ) {

tmp = *SP;

SP = SP + 4;

register(i) = tmp;

}

 

【機能】

-

destとdest2で範囲指定したレジスタを一括してスタックから復帰します。

-

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

-

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

-

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

-

スタックから復帰する順序は以下のとおりです。

 

【命令フォーマット】

構文

処理

サイズ

対象

コードサイズ

(バイト)

dest

dest2

POPM dest-dest2

L

Rd

(Rd=R1〜R14)

Rd2

(Rd2=R2〜R15)

2

 

【フラグ変化】

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

 

【記述例】

POPM    R1-R3
POPM    R4-R8