WiiPlaza Console Homebrew
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.
...Welcome to Wiiplaza! Your source for cheat codes & game hacking...
Official Wiiplaza Partner Site
Statistik
Wir haben 4493 eingetragene Mitglieder
Der neueste Nutzer ist miki.

Unsere Mitglieder haben insgesamt 17013 Beiträge geschrieben zu 1486 Themen

Sie sind nicht verbunden. Loggen Sie sich ein oder registrieren Sie sich

80386 Assembler Register

2 verfasser

Nach unten  Nachricht [Seite 1 von 1]

180386 Assembler Register Empty 80386 Assembler Register 8/8/2013, 10:59

Bully@WiiPlaza

Bully@WiiPlaza
Co-Admin
Co-Admin

Hey!

Wenn ihr mit Cheat Engine hantiert habt ihr wahrscheinlich auch mal den Disassembler angeschaut. Da handelt es sich um 80386 Assembler, anders als bei der Wii (PPC).

In diesem Thema beschreibe ich kurz die Register. In diesen werden ebenfalls Daten für schnellen Zugriff während der Ausführung abgelegt, jedoch heißen sie anders.

8 Bit:
AL, AH, BL, BH, CL, CH, DL, DH

16 Bit:

AX, BX, CX, DX, SI, DI, BP, SP

32 Bit:
EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP

Das wären auch schon alle die es gibt!

Euch sollte auffallen dass jedes Register einen 32 Bit, einen 16 Bit und zwei 8 Bit Ausdrücke hat um "addressiert" zu werden.

Was ist aber mit den höhern 16 Bit oder den beiden höchsten 8 Bit? Wie beschreiben wir die? Das geht nicht, zumindest nicht direkt... Shocked
 
Um dies zu lösen benötigt man Schiebebefehle. Dazu vielleicht später mehr. Cool 

Vorerst lasse ich es aber gut sein... 

~ Bully

http://bullywiihacks.forumotion.com

[WP]Wiios

[WP]Wiios
Co-Admin
Co-Admin

Mit Beschreibungen und deren zweck ink. Spezial Register'n

EAX = Accumulator (spezielle Bedeutung bei Arithmetikbefehlen)

EBX = Base Register (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)


Spezial Register vom 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)

Alle General-Purpose-Register, sowie EIP und EFLAGS, sind auf 32 Bit erweiterte (das E kommt vom englischen extended) Versionen entsprechender 16-Bit-Register der Vorgänger 8086 bis 80286.

http://www.ozelotsdl.de

Nach oben  Nachricht [Seite 1 von 1]

Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten

 

©phpBB | Kostenloses Hilfe-Forum | Einen Missbrauch melden | Cookies
Dieses Forum wird von Forumieren kostenlos gehostet. Erstellen Sie Ihr eigenes Forum mit unserem Hosting-Service.