Tutorial
Inlineassembler in FreeBASIC
Anhang I
Was ist ein Register?
Ein Register ist ein winziges Stückchen Hardware innerhalb des Prozessors, das beim 80386 und höher bis zu 32 Bits, also 32 Ziffern im Bereich 0 und 1 speichern kann.
Es ist vergleichbar mit einer 4-Byte-Integer Variable.
Nach der x86 Architekture werden die Register des Prozessors in den Assembleranweisungen folgendermaßen bezeichnet:
Register Namen
- 4-byte DWord (Integer) Register: eax, ebx, ecx, edx, ebp, esp, edi, esi
- 2-byte Word (Short) Register: ax, bx, cx, dx, bp, sp, di, si
(low word der 4-byte e__- Register)
- 1-byte Byte Register: al, ah, bl, bh, cl, ch, dl, dh
(low und high Byte der 2-byte _x-Register)
- Floating-point Register: st(0), st(1), st(2), st(3), st(4), st(5), st(6), st(7)
- MMX Register : mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7
(umbenannte floating-point Register st(0) - st(7))
- SSE Register: xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7
Allgemeine Register [4-byte DWord (Integer)]:
Name | Bemerkung |
eax | allgemein verwendbar, spezielle Bedeutung bei Arithmetikbefehlen |
ebx | allgemein verwendbar |
ecx | allgemein verwendbar, spezielle Bedeutung bei Schleifen |
edx | allgemein verwendbar |
ebp | Basepointer |
esi | Quelle (eng: source) für Stringoperationen |
edi | Ziel (eng: destination) für Stringoperationen |
esp | Stackpointer |
Die unteren beiden Bytes der Register eax, ebx, ecx und edx haben eigene Namen, beim eax Register sieht das so aus:
ax für die unteren 16 Bits, al für die Bits 0 bis 7 und ah für die Bits 8 bis 15.
Segmentregister:
Name | Bemerkung |
cs | Codesegment |
ds | Datasegment |
ss | Stacksegment |
es | beliebiges Segment |
fs | beliebiges Segment |
gs | beliebiges Segment |
Sonstige Register:
Name | Bemerkung |
eip | Instruction Pointer |
ef | Flags |
Zusätzliche Informationen und Funktionen |
- Das Tutorial wurde am 09.08.2008 von Volta angelegt.
- Die aktuellste Version wurde am 25.04.2024 von Volta gespeichert.
|
|