Forum: Mikrocontroller und Digitale Elektronik 8051 Bit Befehl durch Byte Befehl ersetzen


von 655432 (Gast)


Lesenswert?

Hallo,

ich möchte die folgenden Bit-Befehle durch Byte-Befehle ersetzen:

SETB ACC.0
SETB ACC.3
CLR ACC.1

Ich würde das so machen:

ANL A, #0x01   ; ACC := ACC & 0x01
ANL A, #0x03
ANL A, #0x01

Kommt das hin?

Danke für eure Hilfe!

von 655432 (Gast)


Lesenswert?

Ne, für

CLR ACC.1

müsste ich

XRL A, #0x01 schreiben.

von Bernhard M. (boregard)


Lesenswert?

wenn mein 8051 Assembler nicht zu eingerostet ist:

ORL  A,#0x09
ANL  A,#0xfd

oder?

von 655432 (Gast)


Lesenswert?

Meinst du für das löschen des 2. Bits?

OK, der Befehl

ANL  A,#0xfd

leuchtet mir ein, der amdere nicht!

von crazy horse (Gast)


Lesenswert?

warum nicht? Schreib dir die 0x09 mal binär hin...

von 655432 (Gast)


Lesenswert?

OK,

0000$0000b ORL 0000 1001   ; setzen des 0ten und 3ten Bits

1111$1111b AND 1111 1101   ; löschen des 1ten Bits

OK danke!

Also mit dem ersten Befehl zwei Fliegen mit einer Klappe erschlagen.

von Maxim (maxim) Benutzerseite


Lesenswert?

löschen tust du so:

ANL A, #11111001b  //Bit 1 und 2 gelöscht

und setzen so:

ORL A, #00000110b  //Bit 1 und 2 gesetzt

Dabei bleiben alle anderen Bits im Akku unangetastet.

von Stephan (Gast)


Lesenswert?

Bit setzen mir ORL x,1
Bit löschen mit ANL x,0

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.