論理左シフトを行います。(Shift Logical Left)
[指定形式]
imm5に指定できるものを次に示します。
[機能]
第1オペランドに指定したレジスタ値の下位5ビットで示されるビット数分,第2オペランドに指定したレジスタ値を左に論理シフトし,結果を第2オペランドに指定したレジスタに格納します。
第1オペランドに指定した絶対値式の値で示されるビット数分,第2オペランドに指定したレジスタ値を左に論理シフトし,結果を第2オペランドに指定したレジスタに格納します。
- | “shl reg1, reg2, reg3”の形式 |
第1オペランドに指定したレジスタ値の下位5ビットで示されるビット数分,第2オペランドに指定したレジスタ値を左に論理シフトし,結果を第3オペランドに指定したレジスタに格納します。
[詳細説明]
アセンブラでは,機械語命令のshl命令が1つ生成されます。
[フラグ]
CY
|
最後にシフト・アウトしたビットの値が1の場合1,そうでない場合0(指定したビット数が0の場合0)
|
OV
|
0
|
S
|
結果が負になった場合1,そうでない場合0
|
Z
|
結果が0になった場合1,そうでない場合0
|
SAT
|
−
|
[注意事項]
- | “shl imm5, reg2”の形式でimm5に0〜31の範囲を越える絶対値式を指定した場合,次のメッセージが出力され,指定した値の下位5ビット注が用いられてアセンブルが続行されます。 |
W0550011 : イミーディエトの値が指定可能な値の範囲を越えています。
|
注 | 機械語命令のshl命令は,第1オペランドに0〜31(0x0〜0x1F)のイミーディエトをとります。 |