Hargnemiskäsud
Mnemooniline kuju |
Operandid |
Kirjeldus |
Tegevus |
Lipud |
Taktide arv |
Hargnemiskäsud |
|
||||
RJMP |
k |
Relative Jump
Suhteline hüppamine |
PC < PC + k +1 |
None |
2 |
IJMP |
|
Indirect Jump to (Z)
Hüppa registris Z olevale aadressile |
PC<Z |
None |
2 |
JMP(1) |
k |
Direct Jump
Otsene hüppamine |
PC<k |
None |
3 |
RCALL |
k |
Suhteline alamprogrammi hüppamine |
PC<PC + k+ 1 |
None |
3 |
ICALL |
|
Indirect Call to (Z)
Alamprogrammi hüppamine Z registri aadressi järgi |
PC<Z |
None |
3 |
CALL(1) |
k |
Direct Subroutine Call
Otsene alamprogrammi hüppamine |
PC<k |
None |
4 |
RET |
|
Subroutine Return
Alamprogrammist tagasi pöördumine |
PC < STACK |
None |
4 |
RETI |
|
Interrupt Return
Tagasi pöördumine katkestusele |
PC < STACK |
I |
4 |
CPSE |
Rd,Rr |
Compare, Skip if Equal
Võrdle, jäta vahele kui on võrdsed |
if (Rd = Rr) PC < PC + 2 or 3 |
None |
1/2/3 |
CP |
Rd,Rr |
Compare
Võrdle kaht registrit |
Rd,Rr |
Z, N,V,C,H |
1 |
CPC |
Rd,Rr |
Compare with Carry
Võrdle arvestades ülekannet |
Rd-Rr-C |
Z, N,V,C,H |
1 |
CPI |
Rd,K |
Compare Register with Immediate
Võrdle registrit konstandiga |
Rd-K |
Z, N,V,C,H |
1 |
SBRC |
Rr, b |
Skip if Bit in Register Cleared
Jäta vahele kui bitt registris on “0” |
if (Rr(b)=0) PC < PC + 2 or 3 |
None |
1/2/3 |
SBRS |
Rr, b |
Skip if Bit in Register is Set
Jäta vahele kui bitt registris on “1” |
if (Rr(b)=1) PC < PC + 2 or 3 |
None |
1/2/3 |
SBIC |
P, b |
Skip if Bit in I/O Register Cleared
Jäta vahele kui bitt I/O registris on “0” |
if (P(b)=0) PC < PC + 2 or 3 |
None |
1/2/3 |
SBIS |
P, b |
Skip if Bit in I/O Register is Set
Jäta vahele kui bitt I/O registris on “1” |
if (P(b)=1) PC < PC + 2 or 3 |
None |
1/2/3 |
BRBS |
s, k |
Branch if Status Flag Set
Hüppa kui statuslipp on “1” |
if (SREG(s) = 1) then PC<PC+k + 1 |
None |
1/2 |
BRBC |
s, k |
Branch if Status Flag Cleared
Hüppa kui statuslipp on “0” |
if (SREG(s) = 0) then PC<PC+k + 1 |
None |
1/2 |
BREQ |
k |
Branch if Equal
Hüppa kui on võrdsed |
if (Z= 1)then PC<PC + k+ 1 |
None |
1/2 |
BRNE |
k |
Branch if Not Equal
Hüppa kui pole võrdsed |
if (Z = 0) then PC < PC + k + 1 |
None |
1/2 |
BRCS |
k |
Branch if Carry Set
Hüppa kui ülekande lipp on “1” |
tif (C = 1) then PC<PC + k+ 1 |
None |
1/2 |
BRCC |
k |
Branch if Carry Cleared
Hüppa kui ülekande lipp on “0” |
if (C = 0)then PC<PC + k+ 1 |
None |
1/2 |
BRSH |
k |
Branch if Same or Higher
Hüppa kui on sama või suurem |
if (C = 0)then
PC<PC + k+ 1 |
None |
1/2 |
BRLO |
k |
Branch if Lower
Hüppa kui on väiksem |
if (C = 1)then PC<PC + k+ 1 |
None |
1/2 |
BRMI |
k |
Branch if Minus
Hüppa kui on negatiivne |
if (N = 1)then
PC<PC + k + 1 |
None |
1/2 |
BRPL |
k |
Branch if Plus
Hüppa kui on positiivne |
if (N =0)then PC<PC + k+ 1 |
None |
1/2 |
BRGE |
k |
Branch if Greater or Equal, Signed
Hüppa kui on suurem või võrdne, märgiga |
if (N e V= 0) then PC < PC + k + 1 |
None |
1/2 |
BRLT |
k |
Branch if Less Than Zero, Signed
Hüppa kui on väiksem kui null, märgiga |
if (Ne V= 1)thenPC<PC + k+ 1 |
None |
1/2 |
BRHS |
k |
Branch if Half Carry Flag Set
Hüppa kui pool ülekane lipp on “1” |
if (H = 1)then
PC<PC + k + 1 |
None |
1/2 |
BRHC |
k |
Branch if Half Carry Flag Cleared
Hüppa kui pool ülekande lipp on “0” |
if (H = 0)then PC<PC + k+ 1 |
None |
1/2 |
BRTS |
k |
Branch if T Flag Set
Hüppa kui T lipp on “1” |
if (T = 1) then PC<PC + k +1 |
None |
1/2 |
BRTC |
k |
Branch if T Flag Cleared
Hüppa Kui T lipp on “0” |
if (T = 0) then
PC < PC + k + 1 |
None |
1/2 |
BRVS |
k |
Branch if Overflow Flag is Set
Hüppa kui ületäitumise lipp on “1” |
if (V=1)then
PC<PC + k+1 |
None |
1/2 |
BRVC |
k |
Branch if Overflow Flag is Cleared
Hüppa kui ületäitumise lipp on “0” |
if (V = 0) then
PC < PC + k + 1 |
None |
1/2 |
BRIE |
k |
Branch if Interrupt Enabled
Hüppa kui katkestus on lubatud |
if (I = 1)then
PC<PC + k+ 1 |
None |
1/2 |
BRID |
k |
Branch if Interrupt Disabled
Hüppa kui katkestus pole lubatud |
if( I = 0)then
PC<PC + k+ 1 |
None |
1/2 |