Assembler --> Warum werden Argumente vertauscht

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Assembler --> Warum werden Argumente vertauscht

Beitrag von mintpc »

Hallo zusammen,

ich hätte eine Frage zur Assembler-Anzeige.

Man kann in seinen Lazarus Code ja Assembler-Befehle einbauen, z.B.

{$ASMMODE intel}
asm
MOV EAX, 0005
end;


Wenn ich mir einen Breakpoint setze und den zugehörigen
Assembler anzeigen lasse, steht da:

004246E6 b805000000 mov $0x5,%eax

Da sind dann aber die beiden Argumente vertauscht. Wenn die Zahl 5 ins Register
EAX geschoben wird, müsste es doch eigentlich heißen:
mov %eax, $0x5

Warum sind hier in Pascal die Argumente aller Assembler-Befehle in verkehrter Reihenfolge.
Hat das einen Grund?

Vielen Dank schonmal für die Antwort.
mintpc

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Assembler --> Warum werden Argumente vertauscht

Beitrag von marcov »

mintpc hat geschrieben:
{$ASMMODE intel}
asm
MOV EAX, 0005
end;
Also in "intel" assembler mode ist es dest,src
Wenn ich mir einen Breakpoint setze und den zugehörigen
Assembler anzeigen lasse, steht da:

004246E6 b805000000 mov $0x5,%eax
Bemerke $<Nummer> und % als Registerprefix. Dies ist ATT style, und die ist src, dest.

Warum sind hier in Pascal die Argumente aller Assembler-Befehle in verkehrter Reihenfolge.
Hat das einen Grund?
Ja. AS von binutils nutzt klassisch AT&T. Wenn ich mit FPC anfing, gab es gar kein $asmmode intel.

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: Assembler --> Warum werden Argumente vertauscht

Beitrag von mintpc »

Vielen Dank für die Antwort.

Mit den Hinweisen konnte ich nochmal alles nachgoogeln und
bin jetzt klar.

mintpc

Antworten