Maison >développement back-end >Golang >Comment obtenir le code d'instruction pertinent à partir de l'octet d'instruction ?

Comment obtenir le code d'instruction pertinent à partir de l'octet d'instruction ?

王林
王林avant
2024-02-05 22:27:03521parcourir

Comment obtenir le code dinstruction pertinent à partir de loctet dinstruction ?

Contenu de la question

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


Bonne réponse


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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer