Jetz lernt wenigstens mal die 20 Registerbefehle vom Intel 386 auswendig !

30/10/2012 - 11:32 von Black Rioter | Report spam
Dumm geboren, dumm gestorben das kann für euch doch nicht der Sinn des Lebens sein.


EAX

Accumulator

spezielle Bedeutung bei Arithmetikbefehlen



EBX

Base Register

keine (Das 16-Bit-Register BX konnte im 16-Bit-Modus zur Index-Adressierung benutzt werden; im 32-Bit-Modus ist dies mit allen „General-Purpose“-Registern möglich.)



ECX

Count Register

spezielle Bedeutung bei Schleifen



EDX

Data Register

spezielle Bedeutung bei Multiplikation, Division und Portadressen für die Assembler-Befehle IN und OUT



EBP

Base Pointer

Zeiger auf temporàre Speicherstellen im Stack (z. B. Stackframe für lokale Variablen etc.)



ESP

Stack Pointer

Zeiger auf die aktuelle Position im Stacksegment; nur eingeschrànkt allgemein verwendbar, da dieses Register angibt, wo die Rücksprungadresse von Unterprogrammen und Interrupts gespeichert wird.



ESI

Source Index

Quelle für String-Operationen



EDI

Destination Index

Ziel für String-Operationen


Daneben gibt es auch noch weitere Register zur Steuerung des Verhaltens der CPU:

Die Spezialregister des 80386




EIP

Instruction Pointer

Zeigt auf den nàchsten auszuführenden Befehl. Wird durch Sprunganweisungen veràndert.



EFLAGS

Flag Register

Die einzelnen Bits besitzen unterschiedliche Bedeutungen und zeigen z. B. Überlàufe bei arithmetischen Operationen u. à. an.



CS

Code Segment

Segmentselektor des Codesegmentes (in dem der aktuell auszuführende Programmcode steht)



DS

Data Segment

Segmentselektor des Datensegmentes (in dem die globalen Daten des Programms stehen)



SS

Stack Segment

Segmentselektor des Stacksegmentes (in dem der Stack für die lokalen Daten und Rücksprungadressen stehen)



ES

Extra Segment

Segmentselektor eines weiteren Datensegmentes (wird z. B. für String-Kopierbefehle verwendet)



FS und GS

Extra Segment 2 und 3

Segmentselektoren zweier weiterer Datensegmente



GDTR

Global Descriptor Table Register

Speichert lineare Adresse und Größe der GDT



LDTR

Local Descriptor Table Register

Segmentselektor für das Segment, das die gerade aktive LDT enthàlt
(Es können sich in der GDT zeitgleich mehrere LDT Eintràge befinden)



IDTR

Interrupt Descriptor Table Register

Speichert die lineare Adresse und Größe der IDT



CR0 – CR3

Control Register 0 … 3

Steuern u. A. das Paging, den Koprozessor und den Protected Mode
(Untere 16 Bit des CR0 sind das vom 80286 übernommene MSW)



TR6 – TR7

Test Register 6 … 7

Zum Überprüfen des Translation Lookaside Buffer (TLB).



DR0 – DR7

Debug Register 0 … 7

Dienen zum Festlegen von vier Breakpoints auf Prozessorebene (DR0..DR3) u. a.



TR

Task Register

Segmentselektor des aktiven Task Status Segments (TSS)
(Es können sich zeitgleich mehrere TR in der GDT und LDT befinden)
 

Lesen sie die antworten

#1 Thomas Heger
30/10/2012 - 20:16 | Warnen spam
Habe ich tatsàchlich mal gemacht, aber für einen Intel 8080 und in
Hex-code. Ist schon ziemlich her, aber dafür weiß ich die Befehle auch
nicht mehr.

Das 'Programm' hatte um die 500 Instruktionen und wurde auf Kassette
gespeichert. Als Anzeige gab es vier (!) Siebensegment-'Displays'.

Zum Lernen ist das Programmieren in Assembler sicher sinnvoll.
Allerdings ist das doch eher was für Spezialisten.


TH

Ähnliche fragen