Inline-Assembler mit GCC — Änderungen 5994 → 5995

Zeile 8: Zeile 8:
 
* Die Operandengrößen sind im Mnemonic enthalten. Wird die Größe nicht angegeben, versucht der Assembler sie anhand der Operanden festzustellen. <pre>movl $123, %eax</pre><pre>movw $123, %ax</pre><pre>movb $123, %al</pre>
 
* Die Operandengrößen sind im Mnemonic enthalten. Wird die Größe nicht angegeben, versucht der Assembler sie anhand der Operanden festzustellen. <pre>movl $123, %eax</pre><pre>movw $123, %ax</pre><pre>movb $123, %al</pre>
 
* Speicherzugriffe erfolgen im Format "segment:displacement(base, index, scale)", wobei das Displacement als auch Index und Scale optional sind: <pre>pushl (%eax)</pre><pre>mov %eax, 0x8(%ebp)</pre><pre>mov 0xfffffff8(%esp,%eax,1),%eax</pre>
 
* Speicherzugriffe erfolgen im Format "segment:displacement(base, index, scale)", wobei das Displacement als auch Index und Scale optional sind: <pre>pushl (%eax)</pre><pre>mov %eax, 0x8(%ebp)</pre><pre>mov 0xfffffff8(%esp,%eax,1),%eax</pre>
 +
 +
Wer sich überhaupt nicht mit der AT&T-Syntax anfreunden kann, für den bleibt immer noch die gcc-Kommandozeilenoption "-masm=intel", die die Intelsyntax aktiviert.
  
 
==Einfache Befehle==
 
==Einfache Befehle==
Zeile 20: Zeile 22:
 
   "hlt;"
 
   "hlt;"
 
);</pre>
 
);</pre>
−
 
−
Wer sich überhaupt nicht mit der AT&T-Syntax anfreunden kann, für den bleibt immer noch die gcc-Kommandozeilenoption "-masm=intel", die die Intelsyntax aktiviert.
 
  
 
==Ein- und Ausgabeparameter==
 
==Ein- und Ausgabeparameter==