-         

Ergebnis 1 bis 5 von 5

Thema: Bitmanipulation in ASM

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    29
    Beiträge
    470

    Bitmanipulation in ASM

    Anzeige

    Hallo leute ich hab ein problem:
    Ich habe meinen Port welcher zb 0b01010011 enthält, jetzt will ich dort immer Bits setzen/löschen welche in meinem Register stehen zb. 0b01001000:

    Code:
    Port:     0b01010011
    Register: 0b01001000
    ====================
    Ergebn.:  0b00011011
    Wie mache ich das mit wenig aufwand / befehlen???
    Kann das sein das das ne XOR verknüpfung ist?? wie mache ich den die???

    EDIT:

    Noch eine Frage:

    Wie kann ich das machen, das wnn das Carrybit 0 ist das dan ein Portbit auch Null wird und wenn Carry 1 ist das dann auch das Portbit 1 wir OHNE das die anderen Portbits verändert werden?
    Ich kanns machen dass das Bit zwar gesetzt/gelöscht wird aber dann ändern sich immer die anderen auf 0, und das will ich nicht.

    Danke schonmal für eure Hilfe.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    zu 1.
    Ja, das sieht mir ganz nach nem XOR aus.

    Code:
    in temp, port
    eor temp, register
    out port, temp
    Das EOR ist die XOR Funktion ...

    Dein zweites Problem könnte man wie folgt lösen:

    Code:
     brcs carry_set
     cbi PORT, PIN
     rjmp exit
    carry_set:
     sbi PORT, PIN
    exit:
    das SBI / CBI ändern greifen in dem Fall auf ein eizelnes Bit zu.

    Grüße, da Hanni.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    29
    Beiträge
    470
    Mensch Hanni, du musst ja voll der ASM Checker sein, wieder ein Fettes DANKE an dich.

    Das EOR ist die XOR Funktion ...
    Kein wunder das ich die XOR-Funktion nicht gefunden hab, ich hab in der Befehlsliste nach XOR gesucht, jetzt heist das EOR *peinlich*

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Ne ... nicht voll der ASM Checker ...

    Allerdings arbeite ich schon ne Weile mit den Dingern ... (und ausschliesslich ins ASM) dabei bleibt ne ganze Menge hängen ...

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    52
    Beiträge
    134
    Einzelne Bits setzen / löschen ===> sbi ..... / cbi.....
    ganzer PORT setzen ===> out....
    ganzer PORT einlesen ===> in....

Berechtigungen

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