Forum: Compiler & IDEs GCC inline assembler, x86 opcode


von Daniel -. (root)


Lesenswert?

Hallo GCC Kenner,

  asm volatile("movl $0x00, %eax");
  asm volatile("movl 0x00, %eax");

 401183:       b8 00 00 00 00          mov    $0x0,%eax
 401188:       a1 00 00 00 00          mov    0x0,%eax

Was ist der Unterschied zwischen immediate value und einer
Konstante? Wie man sieht, sieht der opcode anders aus.

Grüße,
Daniel

: Verschoben durch User
von Rolf M. (rmagnus)


Lesenswert?

Die erste Variante lädt den Wert 0 nach eax, während die zweite den 
Wert, der an Speicheradresse 0 steht nach eax lädt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.