Heim >Backend-Entwicklung >Golang >Wie erhalte ich den relevanten Befehlscode aus dem Befehlsbyte?

Wie erhalte ich den relevanten Befehlscode aus dem Befehlsbyte?

王林
王林nach vorne
2024-02-05 22:27:03521Durchsuche

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen