title: What is callq instruction?
body: <p>I have some gnu assembler code for the x86_64 architecture generated by a tool and there are these instructions:</p>
  
  <pre><code>movq %rsp, %rbp  
  leaq str(%rip), %rdi
  callq puts
  movl $0, %eax
  </code></pre>
  
  <p>I can not find actual documentation on the "callq" instruction.</p>
  
  <p>I have looked at <a href="http://support.amd.com/TechDocs/24594.pdf" rel="noreferrer">http://support.amd.com/TechDocs/24594.pdf</a> which is "AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions" but they only describe CALL near and far instructions.</p>
  
  <p>I have looked at documentation for gnu assembler <a href="https://sourceware.org/binutils/docs/as/index.html" rel="noreferrer">https://sourceware.org/binutils/docs/as/index.html</a> but could not find the section detailing the instructions it supports.</p>
  
  <p>I understand that its a call to a function, but I would like to know the details. Where can I find them?</p>