Maison >développement back-end >Golang >Comment obtenir le code d'instruction pertinent à partir de l'octet d'instruction ?
Lorsque j'exécute un programme Go qui contient du code assembleur Go, j'obtiens le message d'erreur suivant :
SIGILL: illegal instruction PC=0x508c04 m=0 sigcode=2 instruction bytes: 0xc4 0x42 0x68 0xf2 0xea 0xc5 0xf9 0xef 0xc1 0x41 0x9 0xfd 0x45 0x1 0xee 0xc1
Comment obtenir le code d'instruction pertinent à partir de l'octet d'instruction ? J'ai essayé la méthode https://github.com/golang/arch Decode mais je n'ai obtenu que l'opcode 0.
Commencez par le premier octet 0xc4, qui devrait être le préfixe VEX.
CPU : CPU Intel(R) Xeon(R) E5-2620)
Système d'exploitation : Linux
Il s'agit de ANDN, qui fait partie du jeu d'instructions BMI1. Sur Intel, Haswell et les versions plus récentes prennent en charge BMI1, mais votre puce est Sandy Bridge, qui est une génération (ou deux, selon la façon dont vous comptez) trop ancienne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!