Kann zusammengesetzter ASM-Code auf mehr als eine Art und Weise (mit Ausnahme von Versatzwerten) zu Ergebnissen führen?

Ich kenne x86-ASM nicht sehr gut, aber ich bin mit SHARP-z80 ziemlich vertraut, und ich weiß aus Erfahrung, dass jeder Befehl (Mnemonik) einen entsprechenden Byte- / Wortwert hat, und indem ich den Hex-Dump des zusammengesetzten Befehls betrachte Binärdatei Ich kann denselben Code, den ich mit Mnemonics geschrieben habe, "zurücklesen".

In einem anderenSO FrageJemand hat das behauptetIn einigen Situationen werden ASM-Anweisungen nicht in den entsprechenden Binärwert übersetzt, sondern vom Assembler auf andere Weise neu angeordnet.

Ich suche besonders nach Fällen, in denen das Zerlegen der Binärdatei zu einem anderen ASM-Code als dem ursprünglichen führen würde.

Mit anderen Worten,Gibt es Fälle, in denen der Assembler-Code kein 1: 1-Verhältnis zum Assembler-Code aufweist?

MikeKwan verknüpft mit einer anderen Frage, bei der GCC Inline-ASM-Code ändern würde (in einem C-Projekt), aber obwohl dies ein interessantes Thema ist, wird diese Frage nicht beantwortet, da GCC ein Compiler ist und immer versucht, Code und Inline zu optimieren Die ASM-Übersetzung wird durch den umgebenden C-Code beeinflusst.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage