Hallo,
beschäftige mich erst neuerdings (gezwungenermaßen) mit Assembler.
Habe leider ein Verständnisproblem mit den Befehlen cpi und andi
Ich war bis jetzt der Meinung, dass ich mit cpi einen Vergleich mache.
Also:
cpi var_x, 0 if(x==0) breq jp_true wenn gleich: springe zu jp_true
soweit so gut.
Nun bin ich auf ein Problem gestoßen wenn ich PINA (an dem Port hängen Switches) abfragen möchte.
in C würde meine Abfrage lauten:
Nun der Assembler teilCode:if ( PINA & _BV(1) != 0 ){ // Taste gedrückt }
in tmp, PINA cpi tmp, 1 if(tmp==1) breq jp_true wenn gleich: springe zu jp_true
Das klappt so aber leider nicht
Statdessen klappt es wenn ich den Befehl andi nehme.
Kann mir bitte jemand sagen warum das so ist?
Muss ich bei PINx immer andi nehmen oder verwechsel ich die Bedeutung von cpi und mein "if(x==xyz)" muss ich mit andi realisieren.
Danke
Kesandal
Lesezeichen