Finden Sie heraus, welche Assembly-Anweisung einen illegalen Anweisungsfehler verursacht hat, ohne Fehler zu beheben

Beim Ausführen eines Programms, das ich in Assembly geschrieben habe, erhalte ichIllegal instruction Error. Gibt es eine Möglichkeit, zu wissen, welche Anweisung den Fehler verursacht, ohne dass dies zu einem Debugging führt, da auf dem Computer, auf dem ich arbeite, kein Debugger oder Entwicklungssystem vorhanden ist? Mit anderen Worten, ich kompiliere auf einer Maschine und laufe auf einer anderen. Ich kann mein Programm auf dem Computer, den ich kompiliere, nicht testen, da SSE4.2 nicht unterstützt wird. Der Computer, auf dem ich das Programm ausführe, unterstützt trotzdem SSE4.2-Anweisungen.

Ich denke, es liegt vielleicht daran, dass ich den Assembler (YASM) anweisen muss, die SSE4.2-Anweisungen zu erkennen, genau wie wir es mit gcc tun, indem ich sie an den Assembler weitergebe-msse4.2 Flagge. Oder denkst du, es ist nicht der Grund? Haben Sie eine Idee, wie Sie YASM anweisen können, SSE4.2-Anweisungen zu erkennen?

Vielleicht sollte ich die fangenSIEGEL signalisieren und dann den SA_SIGINFO dekodieren, um zu sehen, welche Art von unzulässiger Operation das Programm ausführt.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage