Qu'est-ce que callq de l'enseignement?

J'ai quelques assembleur gnu code pour l'architecture x86_64 généré par un outil et il y a ces instructions:

movq %rsp, %rbp  
leaq str(%rip), %rdi
callq puts
movl $0, %eax

Je ne trouve pas de documentation disponible sur le "callq" de l'enseignement.

J'ai regardé http://support.amd.com/TechDocs/24594.pdf qui est "AMD64 Architecture Programmer's Manual Volume 3: à des Fins Générales et Instructions du Système", mais ils ne décrivent que l'APPEL de près et de loin instructions.

J'ai regardé la documentation pour l'assembleur gnu https://sourceware.org/binutils/docs/as/index.html, mais ne pouvait pas trouver la section détaillant les instructions qu'il prend en charge.

Je comprends que c'est un appel à une fonction, mais j'aimerais en connaître les détails. Où puis-je les trouver?

Je le fais que quand je pense qu'ils sont probablement des doublons, mais je n'ai pas pris le temps de regarder pour une dup cible. Je vais jeter un oeil pour celui-ci; si elle n'est pas un doublon, il vaut la peine de l'écriture d'une véritable réponse. Et vous avez raison, j'aurais juste posté une réponse.
Je n'ai pas trouvé les questions existantes sur callq spécifiquement. Et il est en fait la non-évidence des choses à dire à propos de défaut opérande-tailles de branches et d'autres de la pile d'instructions. C'est une question de newbie, mais en fait qui vaille la peine de répondre pour un changement, si je cesse d'être grincheux avec toutes les mauvaises "mon code ne fonctionne pas et je ne sais rien".

OriginalL'auteur user10607 | 2017-10-15