Forum: Mikrocontroller und Digitale Elektronik welcher Flag bei einem Vergleich einer 8-Bit Zahl geiegnet?


von vicente (Gast)


Lesenswert?

Als Anfänger mit der Programmierung  versuche ich gerade, am PortB
meines ATMelS08515   einen 8 Bit A/D- wandler die anliegenen Werte(von
0 bis  255 )  auszuwerten ,,,
ich brauche in diesem Fall  die anliegenden Werte am Portb mit
fesgelegten Werten(33,67 ,178..)   zu vergleichen ... DAfür habe ich
ertsmals die Befehle  SUBI und das N(Negative)-Flag und das S-Flag
benutzt ,,, aber  mit dem Befehl ( IN R16,PINB ) ;  SUBI R16,30,,,(
der
Wert von R16 ist 198 ..) wird das N-Flag gesetzt !
bei SUBI R16,30 ,( R16 auf 126 geladen... wird das N-Flag geloescht !

  das gleiche gilt auch für das S-Flag und andere Befehle wie CPI  !

 welcher Flag ist in diesem Fall  zu benutzen!

   Danke im voraus !

von thkais (Gast)


Lesenswert?

Zunächst mal: Du mußt nicht unbedingt mit dem SUB-Befehl arbeiten,
dadurch wird Dein zu testendes Datenbyte verändert.
Schau Dir mal den Befehl CP bzw. CPI an, der setzt die Flags genauso,
wie der SUBI.
Der Assembler des Atmel ist eigentlich sehr komfortabel, so gibt es
Befehle wie BRGE (Branch on Greater or Equal), BRLO (Branch, if Lower)
usw. Besser geeignet für solche Vergleiche ist auch das Carry-Flag. Ich
möchte Dir empfehlen, das komplette Instruction Set bei Atmel
herunterzuladen (PDF-Datei, mehr als 130 Seiten), dort sind alle
Befehle eingehend beschrieben.

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.