Wie erhalte ich den relevanten Befehlscode aus dem Befehlsbyte?

王林
Freigeben: 2024-02-05 22:27:03
nach vorne
498 Leute haben es durchsucht

Wie erhalte ich den relevanten Befehlscode aus dem Befehlsbyte?

Frageninhalt

Wenn ich ein Go-Programm ausführe, das Go-Assembly-Code enthält, erhalte ich die folgende Fehlermeldung:

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
Nach dem Login kopieren

Wie erhalte ich den relevanten Anweisungscode aus dem Anweisungsbyte? Ich habe die Decode-Methode https://github.com/golang/arch ausprobiert, aber nur Opcode 0 erhalten.

Beginnen Sie mit dem ersten Byte 0xc4, das das VEX-Präfix sein sollte.

CPU: Intel(R) Xeon(R) CPU E5-2620)

Betriebssystem: Linux


Richtige Antwort


Dies ist ANDN, das Teil des BMI1-Befehlssatzes ist. Auf Intel unterstützen Haswell und neuere Modelle BMI1, aber Ihr Chip ist Sandy Bridge, der eine Generation (oder zwei, je nachdem, wie Sie zählen) zu alt ist.

Das obige ist der detaillierte Inhalt vonWie erhalte ich den relevanten Befehlscode aus dem Befehlsbyte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage