generated at
アセンブリ言語
機械語にほぼそのまま1対1で対応するような言語
機械語よりはるかに人間にとって読みやすい
例えば、『実行可能ファイルの16進数表現「55」が、「pushl %ebp」に対応する』などと予め定義しておくことで、そういった利用ができている
拡張子は .s
アセンブリ→機械語の変換も「コンパイル」だが、わかりやすくあえて「アセンブルする」と言ったりもする

記法
gcc -S -masm=intel <input-file>
読みやすい
第一オペランドがdestination
第二オペランドがsource
レジスタの名前はそのまま表記
レジスタの値が指すアドレスを表すときは [] で囲む
gccやobjdumpのデフォルトの出力
引数の順番がintel記法と逆
第一オペランドがsource
第二オペランドがdestination
レジスタの名前に % を付ける
レジスタの値が指すアドレスを表すときは () で囲む

gccでCコードからアセンブリを出力する
-S オプションを付ける
$ gcc -S hoge.c

gccでアセンブリを機械語にコンパイルする
$ gcc -o hoge hoge.s
$ ./hoge

構文
<Mnemonic> <Destination>, <Source>
Mnemonic: 命令
Destination: 値を受け取る領域のアドレス
Source: Destinationに作用する値、または値の入っている領域のアドレス


命令の例


Cコードをアセンブリにリアルタイム変換するサイト



参考
本を見つけた