Ich versuch's. Keine Ahnung, ob der aus der Schleife jemals rauskommt, aber das ist ja nicht die Frage
Code:
LDI r16, 0 ; a=0 (r16)
LDI r17, 2 ; b=2 (r17)
LDI r18, 10 ; c=10 (r18)
While:
cpi r16, 5
brlo _a_lower a < 5
jmp exit_while
_a_lower:
cp r17, r18
breq exit_while b = c
;-----------------------------------------------------
add r16, r17 ; a = a+b
;-----------------------------------------------------
cpi r17, 5 ; if (b < 5)
brlo _if_lower
_if_gt_eq:
ldi r0, 2
add r17, r0 b = b + 2
rjmp While ; continue
_if_lower:
ldi r0, 1
add r17, r0 b = b + 1
rjmp While ; continue
exit_while:
Lesezeichen