Forum: Mikrocontroller und Digitale Elektronik 8051: konstante invertiert laden


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Markus (Gast)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht lesenswert
Um welchen 8051 Assembler geht es denn? (Hersteller, ...)

von Sven P. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Generell dürfte '0xFF - Konstante' gehen.

von Markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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


Gruss

von Markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
??

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>??

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

von Thomas (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
hab es mittlerweilen gfunden ;)

ORL  xxx,#not konstante

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.