0から作るソフトウェア開発

日々勉強中。。。

0から作るOS開発

環境準備

環境設定

ブートローダ

カーネルローダ

GRUB

カーネル

ドライバーその他

Tips IA32(x86)汎用命令一覧 Bから始まる命令 BSF命令

IA32(x86)汎用命令一覧

このサイトで挙げる命令は汎用命令の一覧となります

調べたい命令の頭文字をクリックすると、表の下に詳細が表示されます
IA32(x86)汎用命令一覧
A B C D E F G H
I J K L M N O P
Q R S T U V W X
Y Z 補足


Bから始まる命令

クリックすると、表の下に詳細が表示されます
Bから始まる命令一覧
命令 代表命令の説明
(英語)
代表命令の説明
(日本語)
BOUND Check Array Index Against Bounds 配列インデックスがm16& 16の指定範囲内かどうかを確認する
BSF Bit Scan Forward 順方向にビットスキャンする
BSR Bit Scan Reverse 逆方向にビットスキャンする
BSWAP Byte Swap 32ビットレジスタのバイト順序を逆にする
BT Bit Test 選択したビットをCFフラグにストアする
BTC Bit Test and Complement 選択したビットをCFフラグにストアし、補数をとる
BTR Bit Test and Reset 選択したビットをCFフラグにストアし、クリアする
BTS Bit Test and Set 選択したビットをCFフラグにストアし、セットする


BSF命令(Bit Scan Forward)

BSF命令
オペコード 命令 説明
0x0F 0xBC BSF r16, r/m16 r/m16を順方向にビットスキャンする
0x0F 0xBC BSF r32, r/m32 r/m32を順方向にビットスキャンする


詳細

第2オペランド(読み込み元)を検索して、最下位が1にセットされているビットを探します

最下位のビットが見つかると、そのビットのビット番号(ビットインデックス)が第1オペランド(格納先)に格納されます

第2オペランド(読み込み元)には、レジスタまたはメモリアドレスが使用できます

第1オペランド(格納先)には、レジスタが使用できます

ビット番号(ビットインデックス)は第2オペランド(読み込み元)のビット0からの符号なしのビット番号が格納されます

第2オペランド(読み込み元)の内容(レジスタの場合はレジスタの値、アドレスの場合はそのアドレスが指すメモリの値)が

0の場合は第1オペランド(格納先)に格納される値は未定義となります

影響のあるEFLAGSレジスタのフラグ

影響のあるEFLAGSレジスタのフラグ
フラグ 説明
ID -
VIP -
VIF -
AC -
VM -
RF -
NT -
IOPL -
OF 未定義
DF -
IF -
TF -
SF 未定義
ZF 0:下記以外の場合
1:第2オペランド(読み込み元)の全てのビットが0の場合
AF 未定義
PF 未定義
CF 未定義


inserted by FC2 system