- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Register aufsplitten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.01.2007
    Beiträge
    209

    Register aufsplitten

    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

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    sodass ich das 4. Bit in R16 beispielsweise in das 1. Bit von R17 Laden kann
    BST r16,3
    BLD r17,0
    MfG
    Stefan

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.01.2007
    Beiträge
    209
    Das verstehe ich nicht so ganz. Kannst du oder jemand anderes mir das etwas genauer erklären?

    MfG Killer

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    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.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    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

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.01.2007
    Beiträge
    209
    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

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.112
    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ß

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    69
    Beiträge
    622
    Hi,

    z.B. Atmel AN AVR200. Alle ANs gibt es hier.

    Viele Grüße

    Fred
    Only entropy comes easy. - Anton Checkhov

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests