1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

assembler

    • Suche
  • kiba
  • 27. Mai 2007 um 21:40
  • Unerledigt
  • 1
  • 2
  • kiba
    5
    kiba
    Mitglied
    Punkte
    225
    Beiträge
    34
    • 27. Mai 2007 um 21:40
    • #1

    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:

  • mdk
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 27. Mai 2007 um 21:49
    • #2

    welche prozessorfamilie?

    siehe als einstieg zB hier: http://en.wikibooks.org/wiki/Assembly_Language unten - da gibt es für einige architekturen tutorials.

  • kiba
    5
    kiba
    Mitglied
    Punkte
    225
    Beiträge
    34
    • 27. Mai 2007 um 22:07
    • #3

    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:

  • mdk
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 27. Mai 2007 um 22:10
    • #4
    Zitat von kiba

    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:

    Code
    AX 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, ...

  • kiba
    5
    kiba
    Mitglied
    Punkte
    225
    Beiträge
    34
    • 27. Mai 2007 um 22:11
    • #5

    und warum gibt es einmal 0-8 und 9-16
    warum nicht gleich 0-16

  • Paulchen
    1
    Paulchen
    Gast
    • 27. Mai 2007 um 22:11
    • #6
    Zitat von kiba

    ja genau ich verstehe nciht so richtig was es mit den 8 und 16 bit auf sich hat

    Welche 8 bzw. 16 Bits?!

    Zitat von kiba

    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.

  • Paulchen
    1
    Paulchen
    Gast
    • 27. Mai 2007 um 22:13
    • #7
    Zitat von kiba

    und warum gibt es einmal 0-8 und 9-16
    warum nicht gleich 0-16

    Damit 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?

  • kiba
    5
    kiba
    Mitglied
    Punkte
    225
    Beiträge
    34
    • 27. Mai 2007 um 22:17
    • #8

    meinst z.b. wenn man eine zahl addieren will einmal die 8bit register nutz und den anderen 8 bit register
    al+ah oder was

  • mdk
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 27. Mai 2007 um 22:17
    • #9
    Zitat von Paulchen


    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.

  • mdk
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 27. Mai 2007 um 22:18
    • #10
    Zitat von kiba

    meinst z.b. wenn man eine zahl addieren will einmal die 8bit register nutz und den anderen 8 bit register
    al+ah oder was

    kannst du machen.

  • kiba
    5
    kiba
    Mitglied
    Punkte
    225
    Beiträge
    34
    • 27. Mai 2007 um 22:32
    • #11

    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

  • mdk
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 27. Mai 2007 um 22:38
    • #12
    Zitat von kiba

    http://de.wikibooks.org/wiki/Assembler…:_Der_Prozessor
    das verstehe ich nciht so ganz
    frage:
    1. wo für waren Steuerwerk und Rechenwerk

    steuerwerk = sagt dem rechenwerk, was es machen muss, und holt/speichert die daten

    rechenwerk = führt die berechnungen und co. durch.

    Zitat

    2. 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.

  • kiba
    5
    kiba
    Mitglied
    Punkte
    225
    Beiträge
    34
    • 28. Mai 2007 um 00:54
    • #13

    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

  • mdk
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 28. Mai 2007 um 01:04
    • #14
    Zitat von kiba


    ich verstehe jetzt aber nciht was genau der arbeitsspeicher macht

    daten und instruktionen speichern.

    Zitat

    was z.b.IP, CS, DS, ES sind

    da steht, wo welche daten im arbeitsspeicher zu finden sind.

    Zitat

    warum es 64bit hat

    was hat 64bit?

    Zitat

    was 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.

  • kiba
    5
    kiba
    Mitglied
    Punkte
    225
    Beiträge
    34
    • 28. Mai 2007 um 01:13
    • #15

    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

  • mdk
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 28. Mai 2007 um 01:14
    • #16
    Zitat von kiba

    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

  • kiba
    5
    kiba
    Mitglied
    Punkte
    225
    Beiträge
    34
    • 28. Mai 2007 um 01:15
    • #17

    ahh ok thx

  • kiba
    5
    kiba
    Mitglied
    Punkte
    225
    Beiträge
    34
    • 28. Mai 2007 um 02:25
    • #18

    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-15bits

    AX=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 ist

    Statusregister:
    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 will

    wollte mal fragen is das so richtig

  • mdk
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 28. Mai 2007 um 02:37
    • #19
    Zitat von kiba


    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-15bits

    ja

    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

    Zitat

    CX=Befehls Zähler z.b. wie oft eine schleife durchläuft

    ja

    Zitat

    DX=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.

    Zitat

    0bit=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.

    Zitat

    2bit=PF=--""--,wenn bei der Übergabe nur einsen sind

    nein, wenn es eine gerade anzahl von einsen ist, 0, bei einer ungeraden anzahl 1

    Zitat

    4bit=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

    Zitat

    6bit=ZF=--""--,wenn das ergebnis 0 ergibt

    ja

    Zitat

    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)

    ja

    Zitat

    8bit=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

    Zitat

    9bit=IF=--""-- kann man das programm abbrechen(mit strg+c)

    interrupts sind einiges mehr als nur abbrechen

    Zitat

    10bit=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)

    Zitat

    11bit=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 will

    Alles anzeigen

    ja, 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.

  • Mr.Radar
    19
    Mr.Radar
    Mitglied
    Reaktionen
    13
    Punkte
    3.883
    Beiträge
    738
    • 28. Mai 2007 um 02:40
    • #20

    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?!

    • 1
    • 2

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English