welcher Flag bei einem Vergleich einer 8-Bit Zahl geiegnet?

Gast #96994
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 !
Gast #96995
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren