Segmentierte Adresse einer Speicheradresse zuordnen

    ACHTUNG dies ist das ALTE Forum!!

    Das neue gibt es unter https://discourse.bohramt.de!

      Segmentierte Adresse einer Speicheradresse zuordnen

      Ich schlag mich mal wieder mit einem Lernbuch rum, will halt wissen wie so ein Computer im Detail funktioniert.

      Im Kapitel Motherboard stolpere ich über zwei Speicherfragen. Ich kapier das einfach nicht 8o

      Welche segmentierte Adresse ergibt die Speicheradresse 3459B - 16 (16 klein nach unten versetzt)
      a) 3459:0000
      b) 3459:000B
      c) 459B:3000
      d) 4590:300B


      Welche der folgenden segmentierten Adressen gibt nicht die Speicheradresse 42C85 - 16 an? (16 klein nach unten versetzt)

      a) 41A8:1025
      b) 41C6:1025
      c) 41C8:1005
      d) 42C8:0005


      Das Speicherkapitel hab ich mehrmals durchgearbeitet.
      Ich kapier nicht wie man da ne Antwort ableiten soll?
      Effektive Adressen werden doch im Real Modus so gebildet das man den Inhalt eines Segmentregisters mit 16 multipliziert und das Ergebnis mit dem Offset addiert. Bei der Protected Mode isses noch einfacher aber das hat ja wohl nichts mit den beiden Fragen oben zu tun.
      Hiiiillllllffffffeeeeeeeeeeeeeeeeeeeee X( :D
      du bist nah drann :D

      also das mal 16 ist dezimal

      das ist dann hexadezimal 10

      und wenn das mal 10 ist brauchste nur ne 0 hinten anhängen

      also bei 3459:000B z.b. 0x34590+0x000B was dann 0x3459B ergibt

      also ist bei der ersten frage b richtig und bei der 2. a,b,c

      siehe auch hier unter beispiele -> Intels x86er im Real-Mode

      die nehmen adresse 2F10:87A1 als beispiel

      0x2F10 · 16 + 0x87A1 = 0x2F10 · 0x10 + 0x87A1 = 0x2F100 + 0x87A1 = 0x378A1

      Krieg ist Frieden. Freiheit ist Sklaverei. Unwissenheit ist Stärke.
      Original von AndiAlt42


      10 = 0 x 2^0 + 1 x 2^1 :D

      (0x2^1) + (1 x (2^1)) = 0x4
      [COLOR="#000099"]
      Oder aber du hast mich verwirrt. Sowas macht mich immer so schwindelig.
      [/COLOR] :)


      eure rechnungen sind etwas "individuell" möchte ich mal sagen ^^

      10 = 0 x 2^0 + 1 x 2^1
      geht nur, wenn linke seite binärsystem und rechte seite im dezimalsystem betrachtet wird. und die x sind multiplikationsoperatoren (ned zu verwechseln mit der hexadezimal schreibweise 0x012345, bei der der präfix "0x" auf hexadezimalzahlen hindeutet)

      rechnung:
      2^0 = 1
      2^1 = 2
      also 0 x 2^0 + 1 x 2^1 = 0 x 1 + 1 x 2 = 0 + 2 = 2 ;)

      (0x2^1) + (1 x (2^1)) = 0x4

      ... ist ganz komisch....da weiß man gar ned was was ist. außerdem kommt zweimal 2^1 vor....was is 0x4? null mal vier oder 4 hexadezimal!?


      allgemein funktioniert das so mit den zahlensystemen:
      man spricht vom B-adischen Zahlensystem, wobei B = 10 dem dezimalsystem, B = 16 dem hexadezimalsystem und B = 2 dem binärsystem entspricht.

      eine zahl in einem B-adischen Zahlensystem lässt sich wie folgt ins DEZIMALSYSTEM umrechnen:

      [Zahl mit Ziffern] in B-adischem Zahlensystem = [ letzte Ziffer * (B^0) + vorletzte Ziffer * (B^1) + vorvorletzte Ziffer * (B^2) + vorvorvorletzte Ziffer * (B^3) + ... ] im Dezimalsystem

      dabei hat man bei B >10 erweiterte Ziffern: z.B. im Hexadezimalsystem (B=16) enspricht A = 11, B = 12, C = 13, E = 14, F = 15
      Original von KSK Baden
      Orginale by g0n: Es gibt nur ein badisches Zahlensystem, an das ich mich erinnern kann:


      Ich kenn noch ein badisches Zahlensystem: Das erste und das lezte Bier. Dazwischen wird nich gezählt :D


      :D und ich freu mich schon wieder drauf...ende des monats gehts für ein wochenende in die badische heimat - inklusive durchexerzieren sämtlicher möglicher badischer zählweisen...alla gell ;)