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

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.