データのロードを行います。(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に指定可能なものを以下に示します。
- | #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]が指定されたものとみなされます。 |
[フラグ]
[注意事項]
- | 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)を指定したとして,アセンブルを続行します。
|