Register zusammenfügen im PIC mit Assembler

OP (Firma: Monster AG) #856427
Lesenswert?

Hallo,

habe mal eine Anfängerfrage. Ich möchte in meinem PIC 12F683 mehrere 
Register zusammenfügen, damit ich zum Beispiel größere Bitströme in 
einer Art Array zusammenfügen kann.

Beispiel:

Mein 12F683 Pic besitzt 8Bit-Register, ich möchte einen Bitstrom von 27 
Bits (ein gesendetes Frame) entgegen nehmen. Also benötige ich ungefähr 
4 Register.

Ich habe mich schon mal ein wenig schlau gemacht und bin auf der 
sprut.de Seite fündig geworden.

Um also mehrere Register zusammenschmelzen lassen zu können muss das 
wohl so aussehen ?  :

1
registername RES 04 ;4 Register werden zusammengefasst?

und wie kann ich nun am dümmsten darauf zugreifen um alle Register mit 1 
und 0 vollschreiben zu können ? ;)

Danke im Voraus
Gruß Wolf
(Firma: Druckerei Beste) #856441
Lesenswert?

PIC kann keine Register zusammenfügen. Schade eigentlich! Du musst alle 
Operationen separat auf den einzelnen Registern ausführen. Bei Move und 
logischen Befehlen ist das kein Problem, aber schon bei Add / Sub geht's 
los, weil keine Operation da ist, die einen Carry draufaddiert.

virtuPIC
OP (Firma: Monster AG) #856469
Lesenswert?

Danke für deine schnelle Antwort Thomas!

hmm... das ist echt schade, aber irgendwie kann ich doch mit dieser oben 
genannten Definition doch irgendwie Register zusammenfassen ?
1
registername RES 04 ;4 Register werden zusammengefasst?

und zugreifen kann man zum Beispiel irgendwie mit :
1
           rrf    bitbuffer+x ;x ist eine Laufvariable
2
           .
3
           .
4
           incf   x           ;nach jedem Durchlauf erhöht

ist das so korrekt oder habe ich da einen Denkfehler drinnen !?

gruß
wolf
#861253
Lesenswert?

@wolf retlaw

>        rrf    bitbuffer+x ;x ist eine Laufvariable
>         .
>        .
>       incf   x           ;nach jedem Durchlauf erhöht

Also da ist sogar ein gewaltiger Denkfehler drin! Was du zu bitbuffer 
hinzuaddierst ist die Adresse von x, erhöht wird dann der Inhalt der 
Variable x. Das ergibt wohl so keinen Sinn, oder?

Für Variable können durch die Definition mit RES mehrere Speicherzellen 
unter gleichem Namen zusammengefasst werden. Angesprochen werden die 
einzelnen Register so wie es der Tastendrücker oben gepostet hat.

Gruss,
Edson
OP (Firma: Monster AG) #862254
Lesenswert?

@Meister Eder

das ist mir auch schon klar geworden, aber für mich wäre es günstiger, 
wenn ich halt eine Art Laufvariable hätte wie halt oben mein Pseudocode, 
wo eine Variable je nach Bedingung erhöht wird um mir den jeweilig 
benötigten Speicherplatz reservieren zu können.

naja muss ich wohl umdenken..


Gruß Wolf

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