Hallo ,
ich lese mich gersde duch die Seite http://www.avr-asm-tutorial.net/avr_de/index.html
und habe zwei Fragen:
- was ist eien Maske und
- was ist der Unterschied zwischen direkt und indirekt?
Danke für die Antwort
The Man
Hallo ,
ich lese mich gersde duch die Seite http://www.avr-asm-tutorial.net/avr_de/index.html
und habe zwei Fragen:
- was ist eien Maske und
- was ist der Unterschied zwischen direkt und indirekt?
Danke für die Antwort
The Man
Rein intuitiv würde ich sagen das mit maske immer eine gewisse Bit-Anordnung gemeint ist.
Häufig ließt man von Interruptmaske oder ähnliches. Damit ist die ist die jeweilige Einstellung (Welches Bit gesetzt ist oder nicht), dabei hat zumeist jedes eine bestimmte steuerfunktion (verglichbar mit dem Jumper setzen an Laufwerken, für Master/Slave-Modus).
Indirekt/direkt? jo in grammatik war ich schon immer schlecht....
Scherz beiseite, gemeint ist wahrscheinlich, das direkte beschreiben und lesen von Registern. DIe Register von 0-15 lassen sich nicht mit den (direkten) Schreibbefehl LDI beschreiben.
Ich denke mit direkt/indirekt ist hier eher der direkte Zugrif mit ldi bzw. indirekt über RAM Adressen zwischen 00 und 1F gemeint, aber dafür müßte man die Frage etwas genauer stellen ...
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Indirekt/direkt bei Assembler ist damit eigentlich immer folgendes gemeint:
DIREKT: die Speicher-adresse steht im Befehl
LDS Register, speicheradresse
"Lade das Byte an der speicheradresse ins register"
INDIREKT:
LD register, X
"Lade das Byte, das dort steht, wo das registerpaar XL:XH grad hinzeigt, ins register"
Indirekt, weil du erst die adresse in das registerpaar laden mußt, und DANN erst den Wert ins Zielregister
Solche registerpaare gibts 3
R26:R27 heißt dann auch X
R28:R29 heißt dann auch Y
R30:R31 heißt dann auch Z
MASKE:
Ein Wert (z.B. ein BYte) gilt dann als Maske, wenn du damit aus einem anderenWert durch AND die für dich "interessanten" Bits herausfilterst
z.B
ein Input-Port PINB , aber nur das Bit Nr. 3 ist auf Input geschaltet.
also willst du auch nur dieses Bit haben.
IN R24, PINB
AND R24, 0b00001000 die Maske für Bit Nr 3
jetzt steht in R24 entweder
0b00000000 wenn am PINB.3 NULL anliegt oder
0b00001000 wenn am PINB.3 EINS anliegt
Alle anderen Bits sind "ausmaskiert"
hilft das ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Danke an alle Schreiber,
werde so bald als möglich das neue Wissen auf die Seite anwenden.
Lesezeichen