PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was bedeutet INDIREKT und MASKE?



The Man
16.07.2006, 10:35
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

Madgyver
16.07.2006, 10:52
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.

izaseba
16.07.2006, 11:06
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

PicNick
16.07.2006, 15:38
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 ?

The Man
18.07.2006, 18:01
Danke an alle Schreiber,
werde so bald als möglich das neue Wissen auf die Seite anwenden.