【发布时间】:2018-03-26 22:48:44
【问题描述】:
我有一些由工具生成的 x86_64 架构的 gnu 汇编代码,有以下说明:
movq %rsp, %rbp
leaq str(%rip), %rdi
callq puts
movl $0, %eax
我找不到关于“callq”指令的实际文档。
我查看了http://support.amd.com/TechDocs/24594.pdf,这是“AMD64 架构程序员手册第 3 卷:通用和系统指令”,但它们只描述了 CALL 近和远指令。
我查看了 gnu assembler https://sourceware.org/binutils/docs/as/index.html 的文档,但找不到详细说明它支持的说明的部分。
我知道这是对函数的调用,但我想知道详细信息。我在哪里可以找到它们?
【问题讨论】:
-
@prl:我没有找到关于
callq的任何现有问题。关于分支和其他堆栈指令的默认操作数大小,实际上有一些不明显的东西要说。这是一个新手问题,但实际上,如果我不再对所有糟糕的“我的代码不起作用,我什么都不知道”的问题感到脾气暴躁。