gdb,objdump,gccのオプションのメモと、32bit主要レジスタを一言で説明する。

完全に自分用のメモ

objdumpよく使うオプション

-D

-M intel 表記法の変更

gdbよく使うオプション

起動時

-q

起動中

xメモリの内容を直接チェック

この中には、

o8進

x16進

u符号なし10進

t2進

を、x/oのように指定する。

b単一バイト

hハーフワード(2バイト)

wワード(4バイト)

gジャイアント(8バイト)

gccよく使うオプション

-g追加のデバッグ情報を出力させるもの。

レジスタの名前(32bit)

汎用レジスタ

eaxアキュームレータ

ecxカウンタ

edxデータレジスタ

ebxベースレジスタ

以上は、様々な目的で利用されるが、大抵は一時変数として用いられる。

汎用レジスタ2

espスタックポインタ

ebpベースポインタ

esiソースインデックス

ediデスティネーションインデックス

ポインタとして名前が付いているものは、メモリ上の場所を示す32ビットのアドレスを値として格納するため。

eip

インストラクションレジスタと呼ばれる。

プロセッサによって実行されようとしている命令が格納されているアドレスを指し示す。

極めて重要。

intelシンタックス

命令語 操作の対象, 参照元

操作の対象として入りうる値は、レジスタ、メモリアドレス、即値のどれかが入る。