Forum: Mikrocontroller und Digitale Elektronik XOR Bit-Verknüpfung beim 80C537


von Klaus Lessmann (Gast)


Lesenswert?

Hallo MC-Programmierer,

wie kann ich das Carry-Flag mit einer Speicherstelle (z.B. Bitadresse 
08h) Exclisiv-Oder verknüpfen ?

Bei der Byteverknüpfung gibt es den direkten Assemblerbefehl XRL, der 
existiert aber nicht bei der Bitverknüpfung.

M.f.G.
Klaus

von thkaiser (Gast)


Lesenswert?

Da gibts, so weit ich weiß, leider nichts direktes.

Ich würde es so machen:

      .
      .
      .
      clr a
      push psw
      mov c,08h
      mov acc.7,c
      pop psw
      xrl psw,a
      .
      .
      .
(das Carry-Flag ist im PSW Bit7)
Habe aber schon lange nichts mehr mit dem MCS-51 gemacht - deshalb ohne 
Gewähr.

von Peter D. (peda)


Lesenswert?

Dazu brauchst Du 2 Befehle:


jnb 8, weiter
cpl c
weiter:



Peter

von thkaiser (Gast)


Lesenswert?

@Peter: Und was machst Du, wenn das Carry 0 ist?
Die gesuchte Funktion heißt "XRL C,bit"

von Peter D. (peda)


Lesenswert?

@thkaiser,

und wo ist das Problem ?

Stell einfach mal die Wahrheitstabelle auf und lasse es durch einen 
Simulator laufen.


Peter

von thkaiser (Gast)


Lesenswert?

@Peter:
Asche auf mein Haupt.... war auf dem total falschen Dampfer. Deine 
Lösung hatte ich zunächst auch im Kopf, hatte sie aber verworfen, weil 
sie mir als "zu einfach" erschien. Die Wahrheitstabelle brachte meinen 
Irrtum ans Licht. (Frei nach dem Motto: Warum einfach, wenns auch 
kompliziert geht?). Manchmal wirds einem doch klarer, wenn mans mal 
schriftlich vor sich hat...

Auf jeden Fall: Schöne Feiertage.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.