Post on 08-Jan-2016
description
Comenzile aritmetice i logiceNrComandaOperanziiDescriereaTraducereaOperaiaFlags
1ADDRd, RrAdd without carryAdunarea aritmetic fr transportRd->Rd+RrZ,C,N,V,H
2ADCRd, RrAdd eith carryAdunare cu transportRd>Rd+Rr+CZ,C,N,V,H
3ADIWRd, kAdd immediate to workAdunarea constantei la un cuvntRdh:Rdl Rdh:Rdl+KZ,C,N,V
4SUBRd, RrSubstract without carryScaderea fr transportRdRd-RrZ,C,N,V,H
5SUBIRd, kSubstract immediateDiferen cu o constantRdRd-kZ,C,N,V,H
6SBCRd, RrSubstract with carryScdere cu transportRdRd-Rr-CZ,C,N,V,H
7SBCIRd, kSubstract immediate with carryDiferen cu constant i transportRdRd-K-CZ,C,N,V,H
8SBIWRd, kSubstract immediate from wordDiferena constantei de la cuvntRdh:Rdl Rdh:Rdl-KZ,C,N,V
9ANDRd, RrLogical AndSI logicRdRd*RrZ,N,V
10ANDIRd, kLogical And with ImmediateSI Logic cu o constantRdRd*kZ,N,V
11ORRd, RrLogical OrSAU logicRdRdRrZ,N,V
12ORIRd, kLogical Or with ImmediateSAU logic cu constantRdRdkZ,N,V
13EORRd, RrExclusive ORSAU exclusivRdRdRrZ,N,V
14COMRdOnes complementComplement fa de 1Rd$FF-RdZ,C,N,V
15NEGRdTwos complementNegarea complementului binarRd$00-RdZ,C,N,V,H
16SBRRd, kSet Bits in RegisterSetarea bitului K n registruRdRdkZ,N,V
17CBRRd, kClear Bits in Registertergerea bitului K n registruRdRd*($FF-k)Z,N,V
18INCRdIncrementIncrementareaRdRd+1Z,N,V
19DECRdDecrementDecrementareaRdRd-1Z,N,V
20TSTRdTest for zero or minusTestarea la 0 sau la -RdRd*RrZ,N,V
21CLRRdClear RegisterCurirea registruluiRdRdRrZ,N,V
22SERRdSet all bits in registerSetarea biilor n registruRd$FFNone
3. Comenzi pe bitiNrComandaOperanziDescriereaTraducereaOperaiaFlags
1LSLRdLogical Shift LeftShiftare logic la stingaRd(n+1)Rd(n), Rd(0)0CRd(7)Z,C,N,V,H
2LSRRdLogical Shift RighShiftare Logic la dreaptaRd(n)Rd(n+1), Rd(7)0,CRd(0)Z,C,N,V
3ROLRotate left trough carryRotare la stinga peste bitul de transportRd(0)C,Rd(n+1) Rd, CRd(7)Z,C,N,V,H
4RORRdRotate right trough carryRotare la dreapta peste bitul de transportCRd(7)Rd(n+1) Rd,C Rd(0)Z,C,N,V
5ASRRdArithmetic Shift RightShiftare logic la dreaptaRd(n)Rd(n+1)n=0..6Z,C,N,V
6SWAPRdSwap NibblesInversarea jumtilorRd(0..3)Rd(4..7)None
7BSETSFlag SetSetarea flaguluiSREG(s)1SREG(s)
8BCLRSFlag Clearedtergerea flaguluiSREG(s)0SREG(s)
9SBIP, bSet bit to I/OSetarea bitului n registrul I/OI/O (P,b)1None
10CBIP,bClear bit in I/O Registertergerea bitului din registru I/OI/O (P,b)0None
11BSTRd, bBit Store from Register to TStocarea bitului din registru n flagul TTRd(b)T
12BLDRd, bBit load from T to Registerncrcarea flagului T in bitul registruluiRd(b)TNone
13SECSet carry FlagSetarea transportul flaguluiC1C
14CLCClear carry flagStergerea transportul flaguluiC0C
15SENSet negative flagSetarea flagului negativN1N
16CLNCleared Negative flagtergerea flagului negativN0N
17SEZSet zero flagSetarea flagului 0Z1Z
18CLZClear zero flagtergerea flagului 0Z0Z
19SEISet global Interrupt flagSetarea flagului intreruperii globaleI1I
20CLIClear global interrupt flagtergerea flagului intreruperii globaleI0I
21SESSet Signed FlagSetarea flagului de semnS1S
22CLSClear Signed Flagtergerea flagului de semnS0S
23SEVSet overflow flagSetarea flagului fluxului de dateV1V
24CLVClear overflowStergerea flagului fluxului de dateV0V
25SETSet T flagSetarea flagului TT1T
26CLTClear T flagStergerea flagului TT0T
27SEHSet half carry flagSetarea flagului a jumtii bitului de transportH1H
28CLHClear half carry flagtergerea flagului a jumii bitului de transportH0H
Comenzile de transferNrComandaOperanziDescriereaTraducereaOperaiaFlags
1ELPMExtend Load Program MemoryExtinderea ncrcrii memoriei de programRo=(Z+ELPM)None
2MOVRd, RrCopy RegisterCopierea registruluiRdRrNone
3LDIRd, KLoad ImmediateIncrcarea constanteiRdKNone
4LDSRd, XLoad direct from RAMncarc din RAMRd(k)None
4LDRd, xLoad directncrcare directRd(x)None
5LDRd, x+Load indirect and post incrementncarcare indirect apoi post incrementareRd(x)x x+1None
6LDRd, -xLoad Indirect and pre decrementncrcare indirect apoi pre decrementareRd(x)x x-1None
7LDRd, YLoad Indirectncrcare indirectRd(Y)None
8LDRd, Y+Load Indirect and post incrementncrcare indirect apoi post incrementareRd(Y)Y Y+1None
9LDRd, -YLoad Indirect and pre decrementncrcare indirect apoi pre decrementareRd(Y)YY-1None
10LDDRd, Y+qLoad indirect with displacementncarcare indirect cu deplasamentRd(Y+q)None
11LDRd, ZLoad indirectncarc indirectRd(Z)None
12LDRd, Z+Load indirect and post incrementncarc indirect apoi post incrementareRd(Z)ZZ+1None
13LDRd, -ZLoad indirect and pre decrementncarc indirect apoi pre decrementareRd(Z)ZZ-1None
14LDDRd, Z+qLoad indirect with deplacementIncarc indirect cu deplasamentRd(Z+q)None
15STSk, RrStore Direct to RAMStocheaz direct in RAM(k)RrNone
16STX, RrStore IndiretStocheaz indirect(X)RrNone
17 STX+, RrStore Indirect and post incrementStoceaz indirect apoi post incrementareRr(X)X X+1None
18STX-, RrStore Indirect and pre decrementStocheaz indirect apoi pre decrementeazRr(X)XX-1None
19STDX+q, RrStore indirect with deplacementStoceaz indirect cu deplasamentRr(X+q)None
20STY, RrStore indirectStocheaz indirect(Y)RrNone
21STY+, RrStore indirect and post incrementStochez indirect si post incrementeazRd(Y)Y Y+1None
22STY-, RrStore indirect and pre decrementStocheaz indirect i pre decrementeazRd(Y)YY-1None
23STRd, Y+qStore indirect with displacementStocheaz indirect cu deplasamentRd(Y+q)None
24STRd, ZStore IndiretStocheaz indirectRd(Z)None
25STRd, Z+Store indirect and post incrementStocheaz indirect apoi pre decrementareRd(Z)ZZ+1None
26STZ-, RrStore indirect and pre decrementStocheaz indirect apoi pre decrementeazRd(Z)ZZ-1None
27STRd, Z+qStore indirect with deplacementStoceaz indirect cu deplasamentRr(Z+q)None
28LPMLoad program memoryncrcarea memoriei de programR0(Z)None
29INRd, PLoad on I/O Port to Registerncarc datele din portul I/O n registruRdPNone
30OUTP, PrStore Register to I/O portStocheaz datele din registru n Portul I/OPRdNone
31PUSHRrPush Register on StackPune registrul n stivSTACKRdNone
32POPRdPop Register from StackScoate registrul din stivRdSTACKNone
Comenzile de transfer a controlului executieiNrComandaOperanziiDescriereaTraducereaOperaiaFlags
23CPRd, RkCompareComparareRd-RkZ,C,N,V,H
24CPCRd, RkCompare with carryCompar cu bitul de transportRd-Rk-CZ,C,N,V,H
25CPIRd, kCompare with ImmediateCompar cu o constantRd-KZ,C,N,V,H
26RJMPKRelative JumpSalt relativ la kPCPC+K+1None
27IJMPKIndirect JumpSalt indirect la kPCZNone
28JUMPKJumpSalt necondiionatPCKNone
29RCALLKRelative CallSalt relativ la subrutinPCPC+K+1None
30ICALLKIndirect CallSalt indirect la subrutinPCZNone
31CALLKCallApelare rutinPCKNone
32RETKReturn from subrutineReturnare din subrutinPCstackNone
33RETIKReturn from IntrerruptReturnare din ntreruperePCstackI
34CPSERd, RkCompare skip if equalCompar skip daca e egalIf Rd=Rk then PCPC+2 (or 3)None
35SBRCRr, bSkip if Bit in Register is ClearSare dac bitul din registru este 0If Rr (b)=0 then PCPC + 2 (or 3)None
36SBRSRr, bSkip if Bit in Register is SetSare dac bitul din registru este setatIf Rr (b)=1 then PCPC + 2 (or 3)None
37SBICP,bSkip if Bit I/O is clearSare dac bitul din registrul I/O este tersIf I/O (P,b)=0 then PCPC + 2 (or 3)None
38SBISP, bSkip if Bit I/O is setSare dac bitul din registrul I/O este setatIf I/O (P,b)=1 then PCPC + 2 (or 3)None
39BRBSs, kBranch If Bit in SREG is SetSare dac bitul din registrul SREG este setatIf SREG=1 thenPCPC+k+1None
40BRBCs, kBranch If Bit in SREG in ClearedSare dac bitul din registrul SREG este tersIf SREG=0 thenPCPC+k+1None
41BREQKBranch if EqualSalt la egalitateIf Rd=Rr(z=1) then PCPC+k+1None
42BRNEKBranch if Not EqualSalt dac nu este egalitateIf RdRr(z=0) then PCPC+k+1None
44BRCSKBranch if carry setSare dac transportul este setatIf C=1 thenPCPC+k+1None
45BRCCKBranch if carry cleardSare dac transportul este tersIf C=0 thenPCPC+k+1None
46BRSHKBranch if Same or HigherSare dac este egal sau mai mareIf RdRr(C=0) thenPCPC+k+1None
47BRLOKBranch if LowerSare dac este mai micIf Rd