www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Adresse a:b??


Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi! Ich wollt mal fragen, ob mir jemand sagen kann, was eigentlich die
Adresse a:b ist.
Wiso haisst das a:b und was bedeuted das a und was das b. ? Für eine
adressierung würde doch eine einzige adresse reichen.

MfG Joachim

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Segment:Adresse
Ist zur kompatibilität zu alten CPUs so gemacht.
Das Segment hat immer 16Byte Schritte und die Adresse 1Byte Schritte.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Schreibweise gibt es beim x86-Realmode-Assembler. Die
x86-Prozessoren verwenden segmentierten Speicher, bei denen sich
Adressen aus Segment und Offset innerhalb des Segments zusammensetzen.
Segmente sind 64 kByte groß; alle 16 Bytes des physikalischen Speichers
beginnt ein neues Segment.
Mit dem Doppelpunkt werden Segment und Offset voneinander getrennt.

Die Adresse 1234:5678 (hexadezimale Notation angenommen!) verweist also
auf die physikalische Adresse 179B8 (12340 + 5678).

Glücklicherweise wird so ein Murks sonst nirgends angewendet.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Glücklicherweise wird so ein Murks sonst nirgends angewendet.

C166 ?
Ist sogar eher noch schlimmer =)

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Argh! Der segmentiert auch? Igittigitt. Würd' ich noch nicht mal mit
'ner PLCC-Zange anfassen. Spei.

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das heisst ich kann über das segment 0x1234 die Adressen (vom offset
0x1234) 0 - 8 ansprechen (d.h. 0x1234 - 0x123C), bei einer
Adressbusbreite von 3 bit. Das würde bedeuten, dass ich mit der adresse
über die grenzen eines segments hinaus gehen kann.  Oder ?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist zwar vielleicht etwas Offtopic, aber kennt jemand den C196 ?
Das ist eine Weiterentwicklung vom x86er mit 3 statt 2 Paramtern bei
jedem Befehl. Schönes Teil, nur leider finde ich dazu keinen Assembler.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Joachim: Beim x86-Realmodus sieht das etwas anders aus.

Aus zwei 16-Bit-Teilen (Segment und Offset) wird eine 20-Bit-Adresse
gebildet:

Segment:  SSSS-
Offset:   -OOOO

Die Adresse 1234:0008 ist das gleiche wie die Adresse 1200:0348
oder auch 1000:2348, die resultierende physikalische Adresse lautet
12348 (alles in hexadezimaler Notation!).

Wie das beim C166 oder '196 ist, entzieht sich - anscheinend
glücklicherweise - gänzlich meiner Kenntnis.
Mein Beileid denen, die damit was anstellen müssen.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Joachim
Adressbusbreite von 3 Bit ? Reden wir hier wir wirklich von x86'ern ?

@Rufus
Also der C166 ist wirklich eher noch hässlicher als die x86er =)
Das Teil kann einen Adressraum von 16MByte, hat aber nur 16 Bit
Register. Er kennt eine unsegmentierte Betriebsart, da wir nur mit 16
Bit Offsets gearbeitet und es steht nur ein Adressraum von 64k zur
Verfügung. Lustig wirds in der segmentierten Betriebsart:
Zunächst einmal ist der Programmzähler aufgeteilt, die unteren 16 Bit
sind im IP, die oberen 8 Bit Im CSP (Code Segment Pointer).
Das geht ja noch, richtig lustig wirds beim Zugriff auf Daten.
Der Adressbereich ist zwar für Code und Daten derselbe, Adressen für
die Daten werden aber völlig anders gebildet:
- Die unteren 16 Bit der Adresse stehen z.B. in einem Register, über
das indirekt Adressiert wird. Davon sind aber nur die Bits 0-13 Teil
der Adresse, Bits 14 und 15 Addressieren dann eines der register DPP0
bis DPP3 (Data Page Pointer). Diese Register enthalten die oberen 10
Bits für die Datenadresse.
Der C166 kennt also 256 64KB grosse Codesegmente, und 1024 16KB grosse
Datapages.
Na, wenn das nicht hässlich ist, dann weiss ich auch nicht =)


Vom C196 hab ich noch nie was gehört.

Autor: Sf2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas
Das war nur ein Beispiel. War leichter zu rechnen und hatte grad kein
taschenrechner neben mir liegen und dem von windows vertraue ich nicht
;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.