Assembler auf MSP430

Hallo,

ich habe einige Fragen zum MSP430, bezueglich der Byte-Zugriffe, fuer die es einen MSP430 Profi braucht, oder jemanden der einen Emulator hat:

  1. Wenn ich einen Byte-Befehl benutze, der in ein Register schreibt, was passiert dann mit dem Highbyte des Registers?

zB R4 = 0x1234 R5 = 0x5678

MOV.B R4,R5

R5 = 0x??34

  1. Wenn ich einen Word-Zugriff auf das RAM oder Flash mache, aber eine ungerade Adresse benutze, was passiert dann? Im Datenblatt steht, Word-Zugriffe gehen immer auf gerade Adressen. Kann ich davon ausgehen, dass normale (=compiler-generierte) Software niemals Word-Zugriffe auf ungerade Adressen ausfuehrt? Was wuerde in den existierenden Chips passieren?

  1. Was hat es mit den SFR Registern auf sich (ab Adresse 0x0000), wofuer werden sie benutzt?

  2. Was bedeutet der Addressierungsmode S-reg=R2/CG1 mit As=01? Im Datenblatt steht "(0) Absolute address mode" aber darunter kann ich mir nichts vorstellen. Ein Beispiel waere der Opcode:
0x4215

der "(0)" in R5 ablegt. Was ist "(0)", woher stammen die Daten die nach R5 abgelegt werden?

Vielen Dank schon mal im Vorraus, Marc

Reply to
jetmarc
Loading thread data ...

"jetmarc" schrieb im Newsbeitrag news: snipped-for-privacy@posting.google.com...

In R5 high steht dann eine "00".

JA

Was wuerde in den

Kernschmelze. (Nur SCHBASS!)

Die Register im unteren 256byte Adressbereich sind nur byte-addressierbar Für die regs sind 8bits ausreichend

Die Register im 256-511 byte Adressbereich sind nur word-addressierbar

Negertrick um die Adressierungsart ABSOLUTE nicht extra implementieren zu müssen, bzw. weil kein Platz im instruction word mehr vorhanden ist. Die CPU kennt aber die Adressierungsart "Indexed Mode":

"Die Adresse des Operanden ist die Summe von Index und dem Inhalt des verwendeten Arbeitsregisters" (Originaltext aus "Das grosse MSP430 Praxis Buch" vom MSP CPU Entwickler persönlich)

Bei Verwendung des Arbeitsregisters R2 - also dem Statusregister - erkennt die CPU, dass jetzt die ABSOLUTE Adressierungsart gefragt ist. Dazu liest die CPU Hardware nicht den Inhalt vom SR, sondern eine blanke vierfach Null. Dazu wird der Index (Die absolute Adresse) addiert (welcher hinter dem Befehlswort steht), und schon hat man die absolute Adressierungsart.

Zugegeben, diese CPU Internals sind in dem Buch sehr ausführlich beschrieben, was für normale Assembler Anwender wohl zuviel des Guten ist. Für CPU core Entwickler aber eine feine Sache. Die MSP's sind eine einzige Trickkiste, technisch wirklich fazinierend. Aber scheinbar schreckt das so manche Entwickler ab. Kenne jedenfall ein paar, die ums Verrecken keine verwenden wollen. Stattdessen greifen sie lieber zu einem PIC...

MIKE

Reply to
M.Randelzhofer

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.