GNU Assembler x86 Referenz?
-
Hi,
wo kann ich eine Referenz aller x86 Befehle (möglichst nach Kategorien geordnet und nicht nur alphabetisch) finden und eine Erklärung der Syntax die der GNU Assembler benutzt? Bin dort auf einige komische Dinge gestoßen wie z.B. je 1f, wobei es kein Label namens 1f gibt.
-
1f steht für "1 forward" und bedeutet, es gibt irgendwo lokal in deiner Assembler Datei eine Sprungmarke, die einfach 1 heisst:
je 1f # jump if equal, label 1 forward 1:
Man kann in GNU Assembler (lokale) Sprungmarken mit Zahlen von 0 bis 9 angeben und mit b (back) oder f (forward) mitteilen, in welche Richung welche Sprungmarke gemeint ist:
0: jmp 0f ... jmp 0b 0:
Ansonsten schau mal im GNU Assembler Manual, dort ist alles hinsichtlich Unterschiede zu Intel-Syntax beschrieben.
-
hallo abc.w, danke, dann werde ich das mal machen
-
Wo ist der Vorteil dieser Syntax gegenüber normalen Sprungmarken? Also was bringt die Wiederholung?
-
Einfachere Verwendung in Makros und einfachere Erzeugung von Assemblercode durch einen Compiler würd ich sagen. Außerdem sind Ziffern schön kurz, und kollidieren nicht mit Mnemonics etc.
Sicherlich alles Kritierien aus einem anderen Jahrtausend. Aber das ist Assembler auch.