Autor Thema: Parameter pushen im Longmode  (Gelesen 2221 mal)

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« am: 04. January 2013, 23:24 »
Guten Abend,
In den Tuts wird gerne mal ein Paramater auf den gepusht wenn eine Funktion von Assembler ausgerufen wird.
Geht das im Long Mode auch? Ich habe gehört da übergibt man Parameter gerne über Register.

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 04. January 2013, 23:39 »
Das stimmt. Wie genau die Parameter übergeben werden, ist von der ABI abhängig. Für ELF ist das hier in Kapitel 3.2.3 beschrieben: http://math-atlas.sourceforge.net/devel/assembly/abi_sysV_amd64.pdf Die Reihenfolge der Register ist rdi, rsi, rdx, rcx, r8, r9.

Im Zweifelsfall kannst du dir auch anschauen, welchen Code der Compiler für den Funktionsaufruf erzeugt, wenn du eine Objektdatei disassemblierst.
Dieser Text wird unter jedem Beitrag angezeigt.

 

Einloggen