PUSH

スタックデータ退避

PUSH

PUSH data onto the stack


【構文】

PUSH.size src

 

【オペレーション】

tmp = src;

SP = SP - 4;(注)

*SP = tmp;

サイズ指定子(.size)が“.B”、“.W”でもSPは4減算されます。“.B”のときの上位24ビット、“.W”のときの上位16ビットは不定になります。

 

【機能】

-

srcをスタックに退避します。

-

srcがレジスタ、かつサイズ指定子が“.B”または“.W”のとき、それぞれレジスタのLSB側のバイトデータ、またはワードデータを退避します。

-

スタックへの転送サイズは、ロングワードで行います。サイズ指定子が.Bのときの上位24ビット、.Wのときの上位16ビットは不定になります。

-

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

 

【命令フォーマット】

構文

size

処理サイズ

対象

コードサイズ

(バイト)

src

PUSH.size src

B/W/L

L

Rs

2

B/W/L

L

[Rs]

2

B/W/L

L

dsp:8[Rs](注)

3

B/W/L

L

dsp:16[Rs](注)

4

弊社の「RXファミリ アセンブラ」では、ディスプレースメントの値(dsp:8、dsp:16)は、サイズ指定子が“.W”のときは2の倍数、“.L”のときは4の倍数を指定してください。dsp:8には、サイズ指定子が“.W”のとき0〜510(255×2)が、“.L”のとき0〜1020(255×4)が指定できます。dsp:16には、サイズ指定子が“.W”のとき0〜131070(65535×2)が、“.L”のとき0〜262140(65535×4)が指定できます。命令コードには、1/2、1/4した値が埋め込まれます。

 

【フラグ変化】

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

 

【記述例】

PUSH.B   R1
PUSH.L   [R1]