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

日々勉強中。。。

0から作るOS開発

環境準備

環境設定

ブートローダ

カーネルローダ

GRUB

カーネル

ドライバーその他

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

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 補足


Cから始まる命令

クリックすると、表の下に詳細が表示されます
Cから始まる命令一覧
命令 代表命令の説明
(英語)
代表命令の説明
(日本語)
CALL Call Procedure 指定したアドレスをコールする
CBW Convert Byte to Word 符号拡張する
CDQ Convert Doubleword to Quadword 符号拡張する
CLC Clear Carry Flag CFフラグをクリアする
CLD Clear Direction Flag DFフラグをクリアする
CLI Clear Interrupt Flag 割り込みフラグをクリアする
CLTS Clear Task-Switched Flag in CR0 CR0のTSフラグをクリアする
CMC Complement Carry Flag CFフラグの状態を反転する
CMP Compare Two Operands 比較を行う
CMPS/CMPSB/CMPSW/CMPSD Compare String Operands 文字列を比較する
CMPXCHG Compare and Exchange 値を比較し、値を交換する
CMPXCHG8B Compare and Exchange 8 Bytes 64ビット値を比較し、値を交換する
CPUID CPU Identification プロセッサの識別情報と機能情報を取得する
CWD Convert Word to Doubleword 符号拡張する
CWDE Convert Word to Doubleword 符号拡張する


CMP命令(Compare Two Operands)

CMP命令
オペコード 命令 説明
0x3C ib CMP AL, imm8 imm8をALと比較します
0x3D iw CMP AX, imm16 imm16をAXと比較します
0x3D id CMP EAX, imm32 imm32をEAXと比較します
0x80 /7 ib CMP r/m8, imm8 imm8をr/m8と比較します
0x81 /7 iw CMP r/m16, imm16 imm16をr/m16と比較します
0x81 /7 id CMP r/m32, imm32 imm32をr/m32と比較します
0x83 /7 ib CMP r/m16, imm8 imm8をr/m16と比較します
0x83 /7 ib CMP r/m32, imm8 imm8をr/m32と比較します
0x38 /r CMP r/m8, r8 r8をr/m8と比較します
0x39 /r CMP r/m16, r16 r16をr/m16と比較します
0x39 /r CMP r/m32, r32 r32をr/m32と比較します
0x3A /r CMP r8, r/m8 r/m8をr8と比較します
0x3B /r CMP r16, r/m16 r/m16をr16と比較します
0x3B /r CMP r32, r/m32 r/m32をr32と比較します


詳細

第1オペランド(読み込み元)を第2オペランド(読み込み元)を比較し、その結果をEFLAGSの

ステータスフラグにセットします。比較は第1オペランドから第2オペランドを引き、次にSUB命令

場合と同様にステータスフラグをセットします。オペランドとして即値を使用した場合は、

そのオペランドは第1オペランドのサイズにあわせられ、符号拡張されます



CMP命令は、一般的にジャンプ(Jcc)命令、条件付き転送(CMOVcc)命令、

または、SETcc命令と併用します。ジャンプ(Jcc)命令、 条件付き転送(CMOVcc)命令、SETcc命令

が使用する条件コードはCMP命令の結果に基づきます

「IA-32 インテル アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル」上巻の

付録B「EFLAGS条件コード」に、ステータスフラグと条件コードとの関係がありますので参照してください

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

影響のあるEFLAGSレジスタのフラグ
フラグ 説明
ID -
VIP -
VIF -
AC -
VM -
RF -
NT -
IOPL -
OF 結果に従ってセットされます
DF -
IF -
TF -
SF 結果に従ってセットされます
ZF 結果に従ってセットされます
AF 結果に従ってセットされます
PF 結果に従ってセットされます
CF 結果に従ってセットされます


inserted by FC2 system