SHR、SHRP命令を実行すると、S1のビットがS2ビット右方向にシフトします。1ビットシフトするたびに、右端のビット(最下位ビット)は失われます。左端の空ビットには0が格納されます。結果はD1に格納されます。
SHR、SHRP命令は常に導通します。SHR、SHRP命令を使用する場合は、S1、D1オペランドに指定する変数の型が同じタイプでなければ、エラーとなります。S1、D1オペランドは同じ変数の型を指定してください。
定数指定の場合は下記を参照してください。
S1 : シフトアドレス
シフトを行うアドレスを指定します。
S2 : シフトビット数
シフトするビット数を指定します。
D1 : 格納アドレス
シフトを行った結果を格納するアドレスを指定します。
例)1ビット右シフト
オペランドD1が整数変数の場合
オペランドD1が整数変数の場合でオペランドS1、S2にHEXで入力したい場合
0x(数値のゼロと小文字のx入力)を入力すると以下の値はHEX値となります。
配列指定のデータ(整数変数の配列)をシフトする場合と配列の要素指定をする場合、同じ形式に合わせてください。
形式が違う場合はエラーとなります。
S1とD1が同じサイズの配列のときは、S1は大きな整数として扱われます。ビットは要素から次の要素へシフトされます。
それぞれの要素の右端ビットは失われません。ただし、最初の要素の右端ビットは失われます。S2は0以上(32 x 配列サイズ - 1)以下にしてください。
S1とD1が両方とも配列でないときは、単純に32 ビットシフトします。S2は0 以上31 以下にしてください。