: .
, . (branching) (loop) [5].
( ) .
. , . , .
.
1. ( . initium ), , , . .
2. , , . . .
3. , () , .
4. , .
2 3 (loop body). , .
, . , , ( AVR -- ).
JMP, RJMP, IJMP EIJMP . JMP (Jump ) . RJMP (Relative Jump ) 2 (4 ) . IJMP (Indirect Jump ) , Z; 64 (128 ). EIJMP (Extended Indirect Jump ) ; EIND. , .
|
|
.
BR (Branch if , ) 64+63 SREG ( ). SREG -. (C, Z, N, V, S, H) , . (c arry ) , . Z (z ero ) , . N (n egative ) , 1 ( , ). V (o v erflow ) , . S = N Å V (s ign ) . H (h alf carry ) , .
BR CP (Compare) , CPC (Compare with Carry) CPI (Compare with Immediate) . BR . , .
, , . 4.
4
Rd > Rr | Z×(N Å V) = 0 | CP Rr, Rd | BRLT | |
C + Z = 0 | CP Rr, Rd | BRLO | ||
Rd ³ Rr | (N Å V) = 0 | CP Rd, Rr | BRGE | |
C = 0 | CP Rd, Rr | BRSH/BRCC | ||
Rd = Rr | Z = 1 | CP Rd, Rr | BREQ | , |
Rd ¹ Rr | Z = 0 | CP Rd, Rr | BRNE | , |
Rd £ Rr | Z + (N Å V) = 1 | CP Rr, Rd | BRGE | |
C + Z = 1 | CP Rr, Rd | BRSH | ||
Rd < Rr | (N Å V) = 1 | CP Rd, Rr | BRLT | |
C = 1 | CP Rd, Rr | BRLO/BRCS |
CPSE (Compare and Skip if Equal , ), , .
SBRS, SBRC, SBIS, SBIC (Skip if Bit in Register [I/O Register] is Set [Cleared] , [-] []) . , .
|
|
. 22 , 100 . BRNE. 5, 1, () R16.
1. , . 22, . , , (. 5). -.
2. : add () SUB () INC () DEC () .
;...
array:.byte 5; 5 array
;...