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

日々勉強中。。。

0から作るOS開発

環境準備

環境設定

ブートローダ

カーネルローダ

GRUB

カーネル

ドライバーその他

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

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


Xから始まる命令

クリックすると、表の下に詳細が表示されます
Xから始まる命令一覧
命令 代表命令の説明
(英語)
代表命令の説明
(日本語)
XADD Exchange and Add データを交換してから加算する
XCHG Exchange Register/Memory with Register データを交換する
XLAT/XLATB Table Look-up Translation 指定したテーブルインデックスの位置に有るデータを取得する
XOR Logical Exclusive OR 排他的論理和


XCHG命令(Exchange Register/Memory with Register)

XCHG命令
オペコード 命令 説明
0x90+rw XCHG AX, r16 r16をAXと交換します
0x90+rw XCHG r16, AX AXをr16と交換します
0x90+rd XCHG EAX, r32 r32をEAXと交換します
0x90+rd XCHG r32, EAX EAXをr32と交換します
0x86 /r XCHG r/m8, r8 r8をr/m8と交換します
0x86 /r XCHG r8, r/m8 r/m8をr8と交換します
0x87 /r XCHG r/m16, r16 r16をr/m16と交換します
0x87 /r XCHG r16, r/m16 r/m16をr16と交換します
0x87 /r XCHG r/m32, r32 r32をr/m32と交換します
0x87 /r XCHG r32, r/m32 r/m32をr32と交換します


詳細

第1オペランド(格納先)を第2オペランド(読み込み元)と交換します

オペランドには、2個の汎用レジスタまたは1つのレジスタとメモリアドレスが使用できます

メモリオペランドが参照されていると、LOCKプリフィクスの有無、あるいはIOPLの値に関係なく

プロセッサのロッキングプロトコルが効果操作が持続している間自動的に実行されます(ロッキングプロトコルについては

LOCKプリフィクスを参照してください)。

この命令は、プロセスを同期させるためのセマフォまたは同様のデータ構造の実装に有用です(バスロッキングの詳細については

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

第7章「バスのロック」を参照してください

XCHG命令は16ビットオペランドを指定するとBSWAP命令の代わりに使用することもできます

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

影響のあるEFLAGSレジスタのフラグ
フラグ 説明
ID -
VIP -
VIF -
AC -
VM -
RF -
NT -
IOPL -
OF -
DF -
IF -
TF -
SF -
ZF -
AF -
PF -
CF -


inserted by FC2 system