ld23


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

[指定形式]

-

ld23.b disp23[reg1], reg2

-

ld23.h disp23[reg1], reg2

-

ld23.w disp23[reg1], reg2

-

ld23.bu disp23[reg1], reg2

-

ld23.hu disp23[reg1], reg2

-

ld23.dw disp23[reg1], reg2

ld23.dwはld.dwと書くこともできます。

 

disp23に指定可能なものを以下に示します。

-

23ビット幅までの値を持つ絶対値式

-

相対値式

-

#labelをもつ相対値式でLOWWを適用したもの(ld23.dw命令のみ)

[機能]

ld23.b,ld23.h,ld23.w,ld23.bu,ld23.hu命令は,第1オペランドに指定したアドレスから1バイト分,1ハーフワード分,および1ワード分のデータを取り込み,第2オペランドに指定したレジスタにロードします。ld23.dw命令は,第1オペランドに指定したアドレスからダブルワード・データ分のデータを取り込み,第2オペランドに指定したレジスタreg2に下位32ビット,reg2+1に上位32ビットをロードします。

[詳細説明]

-

アセンブラでは,機械語命令の48ビット長ld命令が1つ生成されます。

機械語命令のld23命令は,ディスプレースメントに-4194304〜+4194303(0xFFC00000〜0x3FFFFF)の範囲のイミーディエトをとります。

 

-

disp23を省略した場合,アセンブラでは,0を指定したものとみなされます。

-

disp23に絶対値式,!labelを持つ相対値式,#labelを持つ相対値式を指定した場合,その後ろの[reg1]の部分が省略できます。ただし,省略した場合,アセンブラでは,[r0]が指定されたものとみなされます。

-

disp23に$labelを持つ相対値式を指定した場合,その後ろの[reg1]の部分が省略できます。ただし,省略した場合アセンブラでは,[gp]が指定されたものとみなされます。

-

disp23に%labelを持つ相対値式を指定した場合,その後ろの[reg1]の部分が省略できます。ただし,省略した場合アセンブラでは,[ep]が指定されたものとみなされます。

[フラグ]

CY

OV

S

Z

SAT

[注意事項]

-

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

-

ld23.h,ld23.w,ld23.hu,ld23.dwのdisp23に2の倍数でない値を指定した場合,アセンブラでは,disp23に対して,2でアライメントしたコードが生成され,次のメッセージが出力されます。

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

 

-

ld23.dw命令に対し,第2オペランドに奇数番号のレジスタを指定した場合,次のメッセージが出力されます。

W0550026:奇数番号の付いたレジスタ(reg)が指定されています。偶数番号の付いたレジスタ(reg-1)を指定したとして、アセンブルを続行します。