2017-03-20 1 views
0

Ich lerne 8051, und es ist schwer zu verstehen byte addressable und bit addressable.Was ist der Hauptunterschied zwischen byte-adressierbar und bit-adressierbar?

a addressable SPF

+2

"Ich lerne 8051" Warum? Es ist für immer veraltet. – Lundin

+3

Es gibt mindestens einen 8051 in dem Computer, den Sie geschrieben haben, wenn nicht mehr, es gibt mehrere in jedem Server, auf dem diese Website lebt, lizenzfrei und einige Chip-Anbieter haben ihren eigenen Kern, den sie für immer verwendet haben, ist es immer noch Weit verbreitet, sicher vielleicht ein Zehntel bis ein Zwanzigstel der Anzahl von Armkernen, die man heute erlebt, aber es ist immer noch ein sehr weit verbreiteter Kern, der in Dingen verborgen ist, die man normalerweise nicht kennt. –

+0

bitte posten Sie die Frage bei SO und nicht verwenden Sie Links, kopieren und einfügen oder erneut eingeben, wie erforderlich. –

Antwort

0

Sie verwenden nicht wirklich die Begriffe richtig, byte adressierbar ist, was wir gewohnt sind, eine Adresse stellt ein eindeutiges Byte im Speicher oder im Speicherraum dar. Bitadressierbar würde bedeuten, dass jedes Bit im Speicherbereich eine eindeutige Adresse hat, was nicht der Fall ist. Sie zeigen Ihnen nur, wie Sie einige Makros/Variablen machen, die auf einzelne Bits zugreifen können, ist keine 8051-Sache, sondern eine generische Programmiersprache und wird speziell in C implementiert, indem Sie Variablentypen oder Schlüsselwörter (oder nur Makros) für ihren Compiler verwenden.

Was sie Ihnen sagen, ist, dass sie diese sbit-Deklaration haben, die, wenn sie nicht nur ein Makro ist, eindeutig keine C-Standarddeklaration ist. Aber Sie können die gleichen Dinge ohne tun. Es ist nur ein bisschen Manipulation, die sie für Sie tun. Normalerweise 5 bis gesetzte Bit Sie so etwas wie

variable |= (1<<5); 

tun würde Bit 5

variable&=~(1<<5); 

und Sie sicherlich Makros aus, dass machen zu löschen, um es allgemein. Was sie für diesen Compiler getan haben, ist, dass Sie eine Variable deklarieren können, die ein einzelnes Bit in einer anderen Variablen ist, und dann diese Bitgröße, die Sie auf eine Eins oder Null setzen können.

+0

Also vielleicht hat in diesem Fall jedes Bit seine eigene Adresse (Register), und das Byte ist nur eine parallele Adresse (Register) wie andere Bits? –

0

Eine Art von Hardware-Architektur, die auf einzelne Bytes von Daten einzigartigen Zugang unterstützt.

Nehmen wir zum Beispiel eine Zahl 0x1234 (0001001000110100) an. Wenn die Nummern auf einem System gespeichert werden, das byteadressierbar ist, erhält das erste Byte der Daten (00010010) eine eindeutige Adresse für das zweite Byte (00110100), d. H. Jedes im Speicher ausgerichtete Byte ist eindeutig adressierbar. Sie könnten den Inhalt nur in Blöcken von 8 Bits manipulieren.

Aber im Falle von Mikrocontroller-Registern wurden Daten gespeichert, wenn Sie seinen Inhalt Bit für Bit manipulieren könnten, heißt es bit-adressierbar.

Verwandte Themen