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

日々勉強中。。。

0から作るOS開発

環境準備

環境設定

ブートローダ

カーネルローダ

GRUB

カーネル

ドライバーその他

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

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


Lから始まる命令

クリックすると、表の下に詳細が表示されます
Lから始まる命令一覧
命令 代表命令の説明
(英語)
代表命令の説明
(日本語)
LAHF Load Flags into AH Register FLAGSレジスタの値をAHレジスタにロードする
LAR Load Access Rights Byte アクセス権をロードし、ZFフラグをセットする
LDS/LSS/LES/LFS/LGS Load Pointer to DS/SS/ES/FS/GS メモリからポインタをロードする
LEA Load Effective Address 実効アドレスをロードする
LEAVE High Level Procedure Exit SP(ESP)をBP(EBP)にセットし、BPをポップする
LGDT Load Global Descriptor Table Register GDTをロードする
LLDT Load Local Descriptor Table Register LDTをロードする
LIDT Load Interrupt Descriptor Table Register IDTをロードする
LMSW Load Machine Status Word メモリの値をCR0のマシンステータスワードにロードする
LOCK Assert LOCK# Signal Prefix LOCK#信号のアサート
LODS/LODSB/LODSW/LODSD Load String 指定したアドレスの文字列をロードする
LOOP/LOOPE/LOOPZ/LOOPNE/LOOPNZ Loop According to ECX Counter CX(ECX)をカウントとして使用して、ループ操作を実行する
LSL Load Segment Limit 指定したセグメントセレクタが指すセグメントリミットをロードする
LTR Load Task Register TSSをロードする


LEAVE命令(High Level Procedure Exit)

LEAVE命令
オペコード 命令 説明
0xC9 LEAVE SPをBPに設定し、次にBPをPOPします
0xC9 LEAVE ESPをEBPに設定し、次にEBPをPOPします


詳細

ENTER命令によってセットアップされたスタックフレームをリリースします。

LEAVE命令は(EBPレジスタ内の)フレームポインタをスタックポインタレジスタ(ESP)にコピーし、それによって

スタックフレームに割り当てられていたスタック空間がリリースされます。次に、古いフレームポインタ(ENTER命令

によってセーブされたコール元プロシージャのフレームポインタ)がスタックからEBPにPOPされ、コール元の

プロシージャのスタックフレームが元の状態に戻されます。



一般的にLEAVE命令の次にRET命令が実行されて、プログラムがコール元に

帰ります



ENTER命令とLEAVE命令の使用についての詳細は

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

第6章「ブロック構造言語でのプロシージャ・コール」を参照してください

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

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


inserted by FC2 system