2006-08-01から1ヶ月間の記事一覧

アセンブラ4

PC

インラインアセンブラで 関数の最後に他の関数を呼び出すような場合 callをjmpに置き換えてcall/retを一組減らすことができる esp+4に引数1 espにリターンアドレスnear call/near ret or far call/far ret の共通する関数呼び出しであれば可能似たようなやり…

アセンブラ3

PC

ecx に this を入れてコールすることで インラインアセンブラからメンバ関数を呼び出せた int class::func(int num); の場合 mov ecx, this push arg1-num call class::func で eax に返値あり

アセンブラ2

PC

C++のインラインアセンブラでは オーバーロードされた関数、メンバ関数をcallすることができないmov ecx, this call [ecx.func] ; bad call Class::func ; bad 関数の呼び出しはできるがメンバ変数にアクセスできないC++とインラインアセンブラは相性がよく…

アセンブラ

PC

comiss jl/jle/jg/jgecomiss/ucomissはサインフラグを常にゼロクリアしてしまうのでcomiss jb/jbe/ja/jaeで分岐させる