Guten Tag Zusammen,
Ich schreibe in 2 Wochen eine Klausur und habe noch einige Probleme.
1.Indirekte Adressierung
Im Register befindet sich eine Speicheradresse, an welcher Stelle sich
der
Operand befindet.
Code: mov.W @r5,r6
Z.b ist in r5 die Adresse 0x38FF gespeichert. würde er mir den operand
der an dieser Stelle im Speicher steht in das Register R6 Schreiben?
Wie gebe ich dem Register r5 nun diese Adresse?
reicht es aus den Wert in das Register zu schreiben und durch das @
erkennt er, dass es sich um eine Adresse Handelt?
code: mov.W #14591,r5 oder mov.W #0x38FF,r5
mov.W @r5,r6
Gast
#4039146
Was ein Lehrer oder wer auch immer dir voraus hat ist ein Datenblatt (z. B. slau144e) und einige Englischkenntnisse: http://cnx.org/resources/e7b8c653dfae7080a8edee3428aea8ed/MSP430%20User%20Guide-slau144e.pdf Stichwort: Adressing Modes
Danke aber mit dem Datenblatt habe ich es auch nicht verstanden.
Tom Drossel schrieb: > Danke aber mit dem Datenblatt habe ich es auch nicht verstanden. Dann such doch mal die betreffende Stelle im Datenblatt (besser: "Family User's Guide") raus, die es erklärt und die Du nicht verstehst.
Auf Seite 147 zu finden Ich verstehe es auch dort wie ich es oben geschreiben habe.Aber ich bin mit halt so unsicher ob das Stimmt und wäre es richtig hättet ihr es mir wahrscheinlich schon gesagt.
mov.w #0x0202,r5 somit hat doch das Register den Wert 0202h oder 514 Dez mov.w @r5,r6 somit greift er dochn auf den Speicherbereich 0202h des Mikrokontrollers zu und schreibt ihn in Regsiter R6 Da ich den Speicherbereich keinen operand zugewiesen habe,würde jetzt irgendwas undefinierts dort drin stehen. Das ist doch richtig wie ich das geschrieben habe oder?
Gast
#4039357
unter 202h könnte je nach msp irgendein Peripherie-Register stecken
Gast
#4039368
Tom Drossel schrieb: > Ich verstehe es auch dort wie ich es oben geschreiben habe.Aber ich bin > mit halt so unsicher ob das Stimmt und wäre es richtig hättet ihr es mir > wahrscheinlich schon gesagt. Nun, es ist richtig und du hast es sogar selber herausgefunden. :D Mit "mov.W #14591,r5" überträgt man eine Konstante (immediate mode) als operand in das Register r5 und mit "mov.W @r5,r6" übergibt man den Inhalt der Adresse des Speichers die sich in r5 befindet an das Register r6 (indirect register mode). Man hat dann dabei zwei Adressierungsarten benutzt, einmal Adressierung mit Konstanten und einmal die indirekte Adressierung.
Ich Danke Euch ;) ja genau dort könnte ein Peripheres Register-stecken.Es sollte auch nur ein Beiuspiel sein um den Aufruf zu verstehen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.