MSP 430 Adressierungen

OP #4039113
Lesenswert?

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
OP #4039306
Lesenswert?

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 #4039368
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren