hi ich suche ein tutorial für dummköpfe :traurig:von assembler
hab schon einiges aus probier aber einiges verstehe ich nicht
z.b das ganze mit den 8bit:confused:
assembler
-
- Suche
-
kiba -
27. Mai 2007 um 21:40
-
-
welche prozessorfamilie?
siehe als einstieg zB hier: http://en.wikibooks.org/wiki/Assembly_Language unten - da gibt es für einige architekturen tutorials.
-
ja genau ich verstehe nciht so richtig was es mit den 8 und 16 bit auf sich hat
und was genau das ah,bh,ch,dh und al,bl,cl,dl ist:confused: -
ja genau ich verstehe nciht so richtig was es mit den 8 und 16 bit auf sich hat :confused:
meinst du die registeraufteilung in x86 prozessoren? dann ist es ganz einfach:
CodeAX bezeichnet alle bits eines registers: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AL nur die 8 unteren: 7 6 5 4 3 2 1 0 AH nur die 8 oberen: 15 14 13 12 11 10 9 8
das selbe gilt natürlich für BX, CX, DX, ...
-
und warum gibt es einmal 0-8 und 9-16
warum nicht gleich 0-16 -
ja genau ich verstehe nciht so richtig was es mit den 8 und 16 bit auf sich hat
Welche 8 bzw. 16 Bits?!
und was genau das ah,bh,ch,dh und al,bl,cl,dl ist:confused:
Das ist die obere bzw. untere Hälfte der Bits der Register ax, bx, cx, dx.
-
und warum gibt es einmal 0-8 und 9-16
warum nicht gleich 0-16Damit du in einem Register nicht nur einen 16-Bit-Wert speichern kannst, sondern zwei 8-Bit-Werte.
Btw. sind die Register der IA32-Architektur (80386 und höher) nicht 32 Bit lang?
-
meinst z.b. wenn man eine zahl addieren will einmal die 8bit register nutz und den anderen 8 bit register
al+ah oder was -
Btw. sind die Register der IA32-Architektur (80386 und höher) nicht 32 Bit lang?ja, aber in den meisten tutorials kommen die längeren register erst später vor, insofern nehme ich an, dass kiba einfach noch nicht so weit ist.
-
meinst z.b. wenn man eine zahl addieren will einmal die 8bit register nutz und den anderen 8 bit register
al+ah oder waskannst du machen.
-
http://de.wikibooks.org/wiki/Assembler…:_Der_Prozessor
das verstehe ich nciht so ganz
frage:
1. wo für waren Steuerwerk und Rechenwerk
2. was genau waren die Datenregister,Adressregister,Stackregister,Spezialregister,Flag-Register -
http://de.wikibooks.org/wiki/Assembler…:_Der_Prozessor
das verstehe ich nciht so ganz
frage:
1. wo für waren Steuerwerk und Rechenwerksteuerwerk = sagt dem rechenwerk, was es machen muss, und holt/speichert die daten
rechenwerk = führt die berechnungen und co. durch.
Zitat2. was genau waren die Datenregister,Adressregister,Stackregister,Spezialregister,Flag-Register
datenregister sind einfach register, in denen beliebige daten gespeichert werden können - bei x86 (E)AX, (E)BX, (E)CX, (E)DX
in adressregistern werden adressen von daten und instruktionen gespeichert - bei x86 (E)IP, CS, DS, ES(, FS, GS)
in stackregistern wird die adresse vom stack gespeichert - bei x86 (E)BP, (E)SP und SS.
in spezialregistern finden sich div. steuerungsmöglichkeiten oder debugmöglichkeiten; für dich als "normalen" programmierer eher unwichtig
im flagregister kannst du schließlich mit dem prozessor und er mit dir kommunizieren - er teilt dir zB mit, wenn es zu einem überlauf gekommen ist, du kannst ihm zB mitteilen, interrupts zu ignorieren.
-
wo für die datenregister sind weiß ich jetzt
ich verstehe jetzt aber nciht was genau der arbeitsspeicher macht
was z.b.IP, CS, DS, ES sind
warum es 64bit hat
was Paragraphen- Byte sind -
ich verstehe jetzt aber nciht was genau der arbeitsspeicher machtdaten und instruktionen speichern.
Zitatwas z.b.IP, CS, DS, ES sind
da steht, wo welche daten im arbeitsspeicher zu finden sind.
Zitatwarum es 64bit hat
was hat 64bit?
Zitatwas Paragraphen- Byte sind
der speicher ist in gleich große segmente aufgeteilt, die sich zT überschneiden. ein paragraphen-byte ist das erste byte eines segments.
-
die IP,CS,DS und ES müssen doch auch eine bedeutung haben was für adressen sie speichern und wofür die adressen genutzt werden
-
die IP,CS,DS und ES müssen doch auch eine bedeutung haben was für adressen sie speichern und wofür die adressen genutzt werden
ja, CS+IP zeigen immer auf die aktuelle instruktion
DS bezeichnet das datensegment (für variablen und co.)
ES das extrasegment - im prinzip nur ein 2. datensegment -
ahh ok thx
-
Datenregister:
AX=AL=>0-7bits,AH=>8-15bits
BX=BL=>0-7bits,BH=>8-15bits
CX=CL=>0-7bits,CH=>8-15bits
DX=DL=>0-7bits,DH=>8-15bitsAX=Rechenoperator(+,-)
BX=Indirekte Register(zugriff auf Arbeitsspeicher)
CX=Befehls Zähler z.b. wie oft eine schleife durchläuft
DX=Rechnet mulit und divi,unterstürst AX wenn der wert größer als 16bits istStatusregister:
0bit=CF=setzt den wert auf 1, wenn ein register wert größer als 8bit ist
2bit=PF=--""--,wenn bei der Übergabe nur einsen sind
4bit=AF=--""--,wenn die Übertragung z.b. von bit 1 zu 2 erfolgreich war
6bit=ZF=--""--,wenn das ergebnis 0 ergibt
7bit=SF=--""--,dint zum vorzeichen(dezimal:+25,-46) 0=+ 1=- (zweierkom.)
((zum aus rechnen von negativen zahlen)Zweierkomplement=alle Ziffern der positiven Dualzahl umgekehrt: 1 wird 0 und 0 wird 1 dann haben wir den Einerkomplement. Daraus wird das Zweierkomplement, indem wir 1 addieren.(z.b 101=(in einerk.)010 +1=011)
8bit=OF=wenn wert 1 ist er im einzelmodus und man kann den prozzes anschauen und analysiren
9bit=IF=--""-- kann man das programm abbrechen(mit strg+c)
10bit=DF=Reihenfolge der Adressen aufliesten 1=aufsteigender Adressen 0=absteigender adressen
11bit=TF=--""--,wenn die letzt ziffer eine 1 ergibt(Areits)Speicher:
CS+IP=speichert aktuelle Adressen(Segment-Adressen:Offset-Adressen)
DS=Datensegment(speichert variablen und co.)
ES=2. Datensegment
ES+SI=für das adressieren von variablen und co. im offset
ES+DI=
SS= Startadresse des Segments
SS+SB=niedrigst Adresse des Segments
SS+BP=adresse des Segments auf die man zu greifen willwollte mal fragen is das so richtig
-
Datenregister:
AX=AL=>0-7bits,AH=>8-15bits
BX=BL=>0-7bits,BH=>8-15bits
CX=CL=>0-7bits,CH=>8-15bits
DX=DL=>0-7bits,DH=>8-15bitsja
Zitat
AX=Rechenoperator(+,-)nein, AX speichert höchstens einen operanden (bei 1+2 ist + der operator und 1 und 2 die operanden)
Zitat
BX=Indirekte Register(zugriff auf Arbeitsspeicher)ja
ZitatCX=Befehls Zähler z.b. wie oft eine schleife durchläuft
ja
ZitatDX=Rechnet mulit und divi,unterstürst AX wenn der wert größer als 16bits ist
ja
wobei: die register sind mehrzweckregister = du kannst sie im prinzip für alles verwenden.
Zitat0bit=CF=setzt den wert auf 1, wenn ein register wert größer als 8bit ist
nein, 1 wenn der wert die größe des registers (die 8, 16 oder 32 bit sein kann) überschreitet.
Zitat2bit=PF=--""--,wenn bei der Übergabe nur einsen sind
nein, wenn es eine gerade anzahl von einsen ist, 0, bei einer ungeraden anzahl 1
Zitat4bit=AF=--""--,wenn die Übertragung z.b. von bit 1 zu 2 erfolgreich war
nein, das ist fürs BCD-rechnen, du kannst es aber getrost ignorieren
Zitat6bit=ZF=--""--,wenn das ergebnis 0 ergibt
ja
Zitat7bit=SF=--""--,dint zum vorzeichen(dezimal:+25,-46) 0=+ 1=- (zweierkom.)
((zum aus rechnen von negativen zahlen)Zweierkomplement=alle Ziffern der positiven Dualzahl umgekehrt: 1 wird 0 und 0 wird 1 dann haben wir den Einerkomplement. Daraus wird das Zweierkomplement, indem wir 1 addieren.(z.b 101=(in einerk.)010 +1=011)ja
Zitat8bit=OF=wenn wert 1 ist er im einzelmodus und man kann den prozzes anschauen und analysiren
nein, OF ist wie CF, nur für vorzeichenbehaftete rechnungen
Zitat9bit=IF=--""-- kann man das programm abbrechen(mit strg+c)
interrupts sind einiges mehr als nur abbrechen
Zitat10bit=DF=Reihenfolge der Adressen aufliesten 1=aufsteigender Adressen 0=absteigender adressen
ja, aber es hat nicht mit auflisten, sondern mit zugreifen zu tun (brauchst du aber, außer bei den stringoperationen, nicht)
Zitat11bit=TF=--""--,wenn die letzt ziffer eine 1 ergibt
nein, TF ist für debugging (kannst du getrost ignorieren)
Zitat(Areits)Speicher:
CS+IP=speichert aktuelle Adressen(Segment-Adressen:Offset-Adressen)
DS=Datensegment(speichert variablen und co.)
ES=2. Datensegment
ES+SI=für das adressieren von variablen und co. im offset
ES+DI=
SS= Startadresse des Segments
SS+SB=niedrigst Adresse des Segments
SS+BP=adresse des Segments auf die man zu greifen willja, wobei SS für den stack reserviert ist, und du BP und SP (den du fälschlicherweise als SB anschreibst) vertauscht hast.
meist verwendet man übrigens DS+SI und ES+DI.
-
ich find das ganze da sehr interessant, hab aber nüsse ahnung von assembler, deshalb wollt ich mal fragen obs eine LVA gibt, wo ma sowas lernt, bzw. falls zu trivial, wo man sowas braucht?!
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!