ビット・ノットを行います。(Not Bit)
[指定形式]
dispに指定できるものを次に示します。
注意 | “not1 reg2, [reg1]”の形式ではdispは指定できません。 |
[機能]
- | “not1 bit#3, disp[reg1]”の形式 |
第2オペランドで指定したアドレスが示すデータの,第1オペランドに指定したビットを反転(0→1,1→0)します。指定したビット以外は影響を受けません。
第2オペランドのレジスタ値で指定したアドレスが示すデータの,第1オペランドで指定したレジスタ値の示すビットを反転(0→1,1→0)します。指定したビット以外は影響を受けません。
[詳細説明]
- | dispに次のものを指定した場合,アセンブラでは,機械語命令のnot1命令注が1つ生成されます。 |
not1 bit#3, disp16[reg1]
|
not1 bit#3, disp16[reg1]
|
(b) | sdata/sbss属性セクションに定義を持つラベルの$labelを持つ相対値式 |
not1 bit#3, $label[reg1]
|
not1 bit#3, $label[reg1]
|
(c) | !label,または%labelを持つ相対値式 |
not1 bit#3, !label[reg1]
|
not1 bit#3, !label[reg1]
|
not1 bit#3, %label[reg1]
|
not1 bit#3, %label[reg1]
|
not1 bit#3, LOWW(value)[reg1]
|
not1 bit#3, LOWW(value)[reg1]
|
注 | 機械語命令のnot1命令は,ディスプレースメントに-32768〜+32767(0xFFFF8000〜0x7FFF)の範囲のイミーディエトをとります。 |
- | dispに次のものを指定した場合,アセンブラでは,命令展開が行われ,複数個の機械語命令が生成されます。 |
(a) | -32768〜+32767の範囲を越える絶対値式 |
not1 bit#3, disp[reg1]
|
movhi HIGHW1(disp), reg1, r1
not1 bit#3, LOWW(disp)[r1]
|
(b) | #label,またはlabelを持つ相対値式,およびsdata/sbss属性セクションに定義を持たないラベルの$labelを持つ相対値式 |
not1 bit#3, #label[reg1]
|
movhi HIGHW1(#label), reg1, r1
not1 bit#3, LOWW(#label)[r1]
|
not1 bit#3, label[reg1]
|
movhi HIGHW1(label), reg1, r1
not1 bit#3, LOWW(label)[r1]
|
not1 bit#3, $label[reg1]
|
movhi HIGHW1($label), reg1, r1
not1 bit#3, LOWW($label)[r1]
|
- | dispを省略した場合,アセンブラでは,0が指定されたものとみなされます。 |
- | dispに#labelを持つ相対値式,または#labelを持つ相対値式にLOWWを適用したものを指定した場合,その後ろの[reg1]の部分が省略できます。ただし,省略した場合,アセンブラでは,[r0]が指定されたものとみなされます。 |
- | dispに$labelを持つ相対値式,または$labelを持つ相対値式にLOWWを適用したものを指定した場合,その後ろの[reg1]の部分が省略できます。ただし,省略した場合,アセンブラでは,[gp]が指定されたものとみなされます。 |
- | dispに%labelを持つ相対値式,または%labelを持つ相対値式にLOWWを適用したものを指定した場合,その後ろの[reg1]の部分を省略できます。ただし,省略した場合アセンブラでは,[ep]が指定されたものとみなされます。 |
[フラグ]
CY
|
−
|
OV
|
−
|
S
|
−
|
Z
|
指定したビットが0の場合1,1の場合0注
|
SAT
|
−
|
注 | Zフラグの値は,この命令実行前の該当ビットの値を示しています。この命令実行後を示すものではありません。 |