VC++のインラインアセンブラとgccのインラインアセンブラとではかなり違うので大変でした

なお、私はアセンブリはよくわかりません。

私の環境
WinXPSP3
CeleronM
VC++2010
MinGW 20101030のやつ
VC++

__asm add esp,n

インテル記法
Cの変数をそのままかける
gcc

__asm__("addl _n,%esp");

AT&T記法
インテル記法と順番が逆
レジスタの前に%
命令でb,w,lのようにサイズを指定
グローバル変数なら_を付けて使える
自動変数は-4(%ebp)みたいに参照できるらしいんだけど私の環境ではできなかった
関数を呼び出すときに*が必要なときがある
スタックに値を積んだ後Cのほうで関数を呼ぶとスタックが消えるっぽい

これのグローバル変数や自動変数のサンプルがなぜか使えませんでした。
自動変数の参照は拡張機能でやることにしました。

追記

スタックの値はCに戻る前に元に戻さないといけないようです。