sld


データのロードを行います。(Short format Load)

[指定形式]

-

sld.b disp7[ep], reg2

-

sld.h disp8[ep], reg2

-

sld.w disp8[ep], reg2

-

sld.bu disp4[ep], reg2

-

sld.hu disp5[ep], reg2

 

disp4/5/7/8に指定できるものを次に示します。

-

sld.bでは7ビット,sld.h,およびsld.wでは8ビット,sld.buでは4ビット,sld.huでは5ビット幅までの値を持つ絶対値式

-

相対値式

[機能]

sld.b,sld.h,sld.w,sld.bu,sld.hu命令は,第1オペランドに指定したディスプレースメントとレジスタepの内容を加算して得たアドレスから,1バイト分,1ハーフワード分,および1ワード分のデータを取り込み,第2オペランドに指定したレジスタにロードします。

[詳細説明]

アセンブラでは,機械語命令のsld命令が1つ生成されます。

ベース・レジスタの指定“[ep]”は省略できます。

[フラグ]

CY

OV

S

Z

SAT

[注意事項]

-

sld.b,およびsld.hは,1バイト分,および1ハーフワード分のデータを符号拡張し,1ワードのデータとしてレジスタに格納されます。

-

sld.h/sld.huのdisp8/disp5に2の倍数でない値を指定した場合,およびsld.wのdisp8に4の倍数でない値を指定した場合,アセンブラでは,disp8/disp5に対して,それぞれ2の倍数,4の倍数にアライメントしたコードが生成され,次のメッセージが出力されます。

W0550019:オペランドに指定した値は2の倍数である必要があります。

 

-

sld.bのdisp7に127を越える値を指定した場合,sld.h,sld.wのdisp8に255を越える値を指定した場合,sld.buのdisp4に16を越える値を指定した場合,およびsld.huのdisp5に32を越える値を指定した場合,次のメッセージが出力され,disp7,disp8,disp4,disp5をそれぞれ0x7F,0xFF,0xF,0x1Fでマスクしたコードが生成されます。

W0550011 : イミーディエトの値が指定可能な値の範囲を越えています。

 

-

sld.bu,およびsld.huの第2オペランド(reg2)にr0を指定した場合,次のメッセージが出力され,アセンブルが中止されます。

E0550240 : RH850コア指定時には、デスティネーション・オペランドにr0を指定することはできません。