タグ

windowsとintelに関するmasterqのブックマーク (1)

  • x64 Assembly Language Programming

    汎用レジスタが倍増したので引数の数が少ないときはスタック経由ではなく基的にレジスタ経由になりました. また32bitのときにあった__fastcall, __stdcallなど(cf. VC++では)は全て無視されるようになりました. C++のメンバ関数の呼び出し方法についてはC++ではを参照. Cの関数のレジスタの使い方は次の通りです. レジスタの用途 レジスタ 用途 呼び出された側(callee)での保存の必要性 rax 戻り値 不要 rcx 1番目の整数型引数 不要 rdx 2番目の整数型引数 不要 r8 3番目の整数型引数 不要 r9 4番目の整数型引数 不要 r10, r11 - 不要 r12~r15, rdi, rsi, rbx, rbp, rsp - 変更するなら必要* xm0 1番目の浮動小数型引数 / 戻り値 不要 xm1 2番目の浮動小数型引数 不要 xm2 3番目の

  • 1