CPSE->CPNE?

Gast #394
Lesenswert?

Hallo,

noch eine Frage von mir ;-)

Ich bin gerade ein wenig am Programmieren, und jetzt stellt sich mir die 
Gegebenheit, dass ich 2 Register vergleichen will, und wenn sie gleich 
sind, soll der in der nächsten Zeile stehende Befehl ausgeführt 
werden...

Einen solchen Assembler Befehl gibt es aber nicht! (AT90S2313)

Es gibt nur CPSE->Compare, Skip if Equal

Was ich bräuchte wäre "Compare, Skip if NOT Equal".

Ich überlege schon ne ganze Weile nach einem Workaround, aber das 
einzige was bis jetzt geklappt hat war mit den branch-Befehlen, aber 
dafür brauche ich dann ja wieder eine Sprungmarke, was das ganze 
unelegant macht.

Wäre nett, wenn jemand ein paar Zeilen dazu schreiben würde...


ciao

     Christian
Admin Persönliche Seite #395
Lesenswert?

Hallo Christian,

> Es gibt nur CPSE->Compare, Skip if Equal
>
> Was ich bräuchte wäre "Compare, Skip if NOT Equal".

gibts leider net.

> Ich überlege schon ne ganze Weile nach einem Workaround, aber
> das einzige was bis jetzt geklappt hat war mit den
> branch-Befehlen, aber dafür brauche ich dann ja wieder eine
> Sprungmarke, was das ganze unelegant macht.

Du brauchst nicht unbedingt Sprungmarken um zu springen. Mit <b>brne 
PC+2</b> wird z.B. der nächste Befehl übersprungen, wenn der Vergleich 
negativ ausfällt. <b>PC</b> bedeutet "Program Counter", <b>PC+2</b> sagt 
dem Assembler, dass du 2 Adressen nach vorne springen möchtest. Am 
besten mal im AVR-Studio ausprobieren.

MfG
Andreas

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