は、私はツールで生成x86_64のアーキテクチャのためのいくつかのGNUアセンブラコードを持っており、これらの命令があります。callq命令とは何ですか?
movq %rsp, %rbp
leaq str(%rip), %rdi
callq puts
movl $0, %eax
私は「callq」命令の実際のドキュメントを見つけることができません。
私はhttp://support.amd.com/TechDocs/24594.pdfを見てきましたが、これは「AMD64アーキテクチャプログラマーズ・マニュアル第3巻:汎用およびシステム命令」ですが、CALLのnear命令とfar命令しか記述していません。
私はgnuアセンブラhttps://sourceware.org/binutils/docs/as/index.htmlのドキュメントを見てきましたが、それがサポートしている指示の詳細を見つけることができませんでした。
私はその関数呼び出しを理解していますが、詳細を知りたいと思います。どこで見つけることができますか?
私は不思議です@Peter、なぜあなたは答えの代わりにコメントとして回答を投稿するのですか? – prl
@prl:おそらく重複していると思うときはそうしますが、私はdupターゲットを探す時間がかかりませんでした。私はこれを探します。重複していない場合は、本当の答えを書く価値があります。そして、あなたは正しい、私はちょうど答えとしてそれを掲示することができた。 –
@prl:特に 'callq'に関する既存の質問はありませんでした。また、ブランチやその他のスタック命令のデフォルトオペランドサイズについては、実際には分かりません。これは初心者の質問ですが、実際には変化に答える価値があります。もし私がすべての悪い "私のコードはうまくいかず、私は何も知らない"という質問で心配しないでください。 –