Forum: Mikrocontroller und Digitale Elektronik 8051: konstante invertiert laden


von Markus (Gast)


Lesenswert?

Guten Tag!

Mit MOV R0,#konstante kann ich ja bekanntlich die Konstante in das 
Register 0 laden. Gibt es im 8051er-Assembler eine Möglichkeit, den 
inversen Wert der Konstante zu benützen? In C kann ich ja mit ~Konstante 
den Wert invertieren.
Idee dahinter ist, dass ich die Masken für irgendwelche Flags nur einmal 
ablegen muss und so löschen und setzen mit der gleichen Maske tätigen 
kann. (was ich persönlich für sinvoller halte)


Gruss Markus

von Simon K. (simon) Benutzerseite


Lesenswert?

Um welchen 8051 Assembler geht es denn? (Hersteller, ...)

von Sven P. (Gast)


Lesenswert?

Generell dürfte '0xFF - Konstante' gehen.

von Markus (Gast)


Lesenswert?

Hallo,

is ist der KEIL A51 Macro Assembler V6.14a.
Gibt es da keine direkte Schreibweise?


Gruss

von Markus (Gast)


Lesenswert?

??

von holger (Gast)


Lesenswert?

>??

Handbuch lesen?
Im Online Handbuch habe ich es in 5 Minuten gefunden.

von Thomas (Gast)


Lesenswert?

MOV A,#xx
CPL A
MOV R0,A

oder verstehe ich Deine Frage total falsch?
Du willst alle Bit's invertieren?

Dann CPL A

von Markus (Gast)


Lesenswert?

Hallo,

Ich möchte bloss die Maskierung nur einmal definieren. Wenn ich das Bit 
löschen möchte, maskiere ich mit:

ANL  xxx,#konstante

und wenn ich es setzen will, möchte ich das mit der selben konstante 
tun.

ORL  xxx,#~konstante

wobei das ~ C-syntax ist und logischerweise nicht funktioniert. Aber 
vielleicht versteht jetzt jemand, auf was ich hinaus will ;-)

Ich suche eine andere Schreibweise, sodass ich den inversen Wert der 
Konstante bekomme.


Gruss

von Markus (Gast)


Lesenswert?

hab es mittlerweilen gfunden ;)

ORL  xxx,#not konstante

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.