Hallo,
ich habe eine kurze Frage. Wie kann ich ein Register "aufsplitten", sodass ich das 4. Bit in R16 beispielsweise in das 1. Bit von R17 Laden kann?
MfG Killer
Hallo,
ich habe eine kurze Frage. Wie kann ich ein Register "aufsplitten", sodass ich das 4. Bit in R16 beispielsweise in das 1. Bit von R17 Laden kann?
MfG Killer
BST r16,3sodass ich das 4. Bit in R16 beispielsweise in das 1. Bit von R17 Laden kann
BLD r17,0
MfG
Stefan
Das verstehe ich nicht so ganz. Kannst du oder jemand anderes mir das etwas genauer erklären?
MfG Killer
Das T-Bit ist ein "freies" Bit im Statusregister, dass für solche Zwecke verwendet wird
BST R16 , 3
übertragt das bit 3 von r16 in das T-Bit im Statusregister
BLD R17 , 0
überträgt das T-Bit in das Bit 0 von r17
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Killer,
etwas umständlicher, als von sternst vorgeschlagen, dafür aber gleich für alle 4 Bits geht's so:
mov r17,r16; kopiere Inhalt r16 nach r17
swap r17 ; vertausche obere und untere 4 Bit in r17
andi r17,0x0F ; obere 4 Bit in r17 auf 0 setzen
andi r16,0x0F ; obere 4 Bit in r16 auf 0 setzen
Ciao,
mare_crisium
Ich danke euch soweit. Ist rechnen mit Zahlen über 255 eigendlich möglich (mit ASM)? Die Register sind ja nur 8Bit breit. Was wäre wenn ich jetzt beispielsweise 1000 mit 1000 multiplizieren will?
MfG Killer
Dann benutzt Du fertige Subroutinen, die Du zB mit Applicationnote bei Atmel findest. Da gibts dann zB 16x16=32Bit usw. Suche nach "Multiply and divide routines".
Es gibt aber auch noch andere Quellen...
Gruß
Lesezeichen