Assembler indirekte Adressierung

Gast #3157019
Lesenswert?
• ▲
▼
Guten Tag,

Ich bräuchte ein bisschen "Nachhilfe".

Ich hab eine Aufgabe die wohl ganz trivial ist aber ich nicht so auf die 
Reihe bekomme:

- Gegeben sind die Konstanten zahl1 = 3 und zahl2 = 6

- Die zahl1 soll in den kompletten RAM-Adressbreich
von 0x150 abwärts bis 0x120 geschrieben werden.
Beginnend mit der Adresse 0x150.

- Jetzt soll die zahl2 an jede dritte Adresse beginnend
mit 0x160 bis maximal 0x180 geschrieben werden.
Hierfür verwenden Sie den indirekten Adressierungs-
Modus.

Also das mit den Adressbereich von 150 - 120 zu kopieren bekomme ich 
einfach nicht hin.

Ich hab mir überlegt, mit
lfsr   FSR1,0x150
erstmal einen Pointer zu erstellen.
dann möchte ich ihn im "loop" 30x mal dekrementieren und dabei die Zahl1 
jedesmal in die adresse reinschreiben.

Ich bräuchte dabei wirklich hilfe, wie ich das bewerkstelligen soll.
Gast #3157053
Lesenswert?
• ▲
▼
Nunja ist ja nicht so, dass ich schon gesucht hätte ;-)

Es ist mir einfach nicht verständlich, wie ich eine konstante wie ich 
sie z.b. bei movlw (eine Zahl ins W-Register schreiben) verwende, in die 
Adresse des Pointers reinschreiben soll.

ich hab es schon mit movff versucht und alles aber beim "File Register" 
wird nichts angezeigt.

was für ein befehl brauch ich denn, damit ich einfach die zahl1 in die 
adresse reinschreiben kann auf die der pointer gerade zeigt?
#3157062
Lesenswert?
• ▲
▼
Mit
movwf postinc1
schreibst du ja schon mal den Inhalt vom W in das indirekt adressierte 
Register und erhöst automatisch den Zeiger.

Jetzt must du nur noch eine Schleife Programmieren können.

Edit grade gesehen du solst das von oben herrab machen, dafür oh wunder 
gibt es postdec1
Gast #3157097
Lesenswert?
• ▲
▼
ok hab es hinbekommen :D

hier der code:

variablen:
ZAHL1  equ  D'3'
ZAHL2  equ  D'6'
counter  equ  0x100



main:
  movlb  0x01
  lfsr  1,0x150
  movlw  D'49'
  movwf  counter
  movlw  ZAHL1

loop:
  movwf  POSTDEC1
  decfsz  counter
  goto  loop

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.