[C nach Assembler] Problem mit Schleife

OP #2488641
Lesenswert?

Hi,

ich möchte folgenden C-Code in Assembler umschreiben:
1
do
2
{
3
  a = PINA & 0b10000000;
4
  b = b-1;
5
} while ((a==0) && (b > 0));
6

7
if (b > 0)
8
  PORTC = ~b;


Ich habe schonal angefangen:
1
.def a = r16
2
.def b = r17
3

4
loopDo:
5
  in a, PINA
6
  ldi r19, 0b10000000
7
  and a, r19
8
  dec b
9

10
  sbrs a,7
11
  rjmp loopwhileBedingung1
12
  rjmp loopDoEnde
13

14
loopwhileBedingung1:

hier weiß ich nicht weiter, wie Frage ich ab, ob b größer als 0 ist?


Liebe Grüße,
krueemel

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