| 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> | ||
| − | |||
| − | |||
==Ein- und Ausgabeparameter== | ==Ein- und Ausgabeparameter== | ||