schleifendurchgang in asm über 255

Gast #771861
Lesenswert?
• ▲
▼
hallo, ich habe einen schleifenzaehler von 266.
ich weiss jetzt nicht, wie ich den in einem durchlauf reingekomme mit 
asm.
brauche mal eine denkanstoss.
habe jetzt aufgeteilt in 255 und in 11.

Sub Ir_code_6666()
   ldi r17,255
Wgloop1:
   Portb.1 = 1
   Waitus 12
   Portb.1 = 0
   Waitus 12
   dec r17
   brne wgloop1

   ldi r17,11
Wgloop2:
   Portb.1 = 1
   Waitus 12
   Portb.1 = 0
   Waitus 12
   dec r17
   brne wgloop2
End Sub
#771887
Lesenswert?
• ▲
▼
bastler wrote:
> hallo, ich habe einen schleifenzaehler von 266.
> ich weiss jetzt nicht, wie ich den in einem durchlauf reingekomme mit
> asm.
> brauche mal eine denkanstoss.
> habe jetzt aufgeteilt in 255 und in 11.

Ist eine Möglichkeit.
Eine andere wäre es 2 mal je 133 Durchgänge zu fahren

     ldi r18, 2
Wgloop0:
     ldi r17, 133
Wgloop1:
     Portb.1 = 1
     Waitus 12
     Portb.1 = 0
     Waitus 12

     dec r17
     brne Wgloop1

     dec r18
     brne Wgloop0
#771888
Lesenswert?
• ▲
▼
bastler wrote:
> wieviel schaltvorgänge/schleifendurchgänge werden eigentlich
> durchgeführt , wenn ich 200 eingebe? sind es 200 oder 201.

Spiel es mal in Gedanken durch, wenn du 1 angibst. Wieviele
Durchgänge sind es bei einer Angabe von 2? Bei 3? Was schlieest
du daraus für 200?
#771937
Lesenswert?
• ▲
▼
bone wrote:
> ldi r16,low(266)
> ldi r17,high(266)
>
> loop:
>
>  ; hier Deine Geschichten
>
>    dec r16
>    brne loop
>
>    dec r17
>    brne loop
>
>
> ^^ AUTSCH
> wären das nicht 12 * 255 durchgänge????

Nein, das sind nur 10 Durchgänge.

Richtig wäre:
1
ldi r16,low(266)
2
ldi r17,high(266)
3

4
loop:
5

6
 ; hier Deine Geschichten
7

8
   subi r16, 1
9
   sbci r17, 0
10
   brne loop


Peter

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