タグ

ブックマーク / lv4.hateblo.jp (1)

  • x86とx86_64アセンブラの比較 - Handwriting

    そろそろx86_64アセンブラも勉強しないと時代に追いつけなるなということをひしひしと感じつつあるので、手始めにx86とx86_64の違いを比較してみた。 なんといっても大きいのは、x86_64ではスタックを利用した引数の受け渡しをする必要が減ったこと。 x86では、関数呼び出し時の引数を渡すときはお馴染みの「引数逆順push」で、サブルーチンで引数を受け取るのは 4*(n+1)(%ebp) ただし32bit引数の場合 だったわけだけど、x86_64では%rax〜%rbpという従来の32bitレジスタを64bitレジスタに拡張したものに加えて、%r8〜%r15という64bitレジスタが増えたため、整数型引数はレジスタに入れて渡すことができるようになっている。 【参考】x64 Assembly Language Programming ちなみに、「整数型引数以外はどうなんのよ?」という疑問に

    x86とx86_64アセンブラの比較 - Handwriting
  • 1