Frage

Nach dieser: http://www.8052.com/tutsfr.php die SFRS, deren Adresse ist teilbar durch 8-Bit-adressierbar. Sie können auf ihnen Dinge wie EINSTD oder CLR tun. Aber sind sie nicht überlappen andere Speicheradressen? Ich meine, zum Beispiel, P0 ist in 80h. So P0.0 80h sein wird, wird P0.1 81h sein. Aber 81h ist die Adresse von SP. Sind sie nicht überlappen?

War es hilfreich?

Lösung

Sie sind verwirrend eine Bit-Adresse mit einer Byte-Adresse. Sie tun es nicht überlappen oder beziehen sich auf die gleichen physischen Speicherort. Anweisungen, die Bit-Adressen übernehmen (z. B. SETB) weiß, wie die Bit-Adresse in eine Byte-Adresse und Bit-Nummer zu dekodieren. Die Byte-Adresse wird durch Ausmaskieren der 3 niedrigsten Bits in der Bit-Adresse erhalten. Die Bit-Zahl wird durch Ausblendung der höchsten 5 Bits erhalten.

zB. Bit-Adresse 87h -> Byte-Adresse 80h, Bit # 7

Andere Tipps

P0.0 und P0.1 bezieht sich nur auf einzelne Bits des 8-Bit P0-Register (von dem, was ich verstehe).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top