Sie sind auf Seite 1von 7

i~.

M=-51

PROGRAMMERS GUIDE AND INSTRUCTION SET

M=@-51 INSTRUCTION SET


Table 10.8051 Inatruotion Set Summary

Interrupt ResponseTime: Refer to Hardware Description Chapter.


Instructions that Affect Flag Settings(l) Ffsg Inetmetion Flsg C OV AC C OV AC ADD xx X CLRC o ADDC xx X CPLC x xx X ANLC,bit X SUBB MUL ox ANLC,/bit X DIV ox ORLC,bit X x DA ORLC,bit X RRC x MOVC,bit X RLC x x CJNE SETBC 1 (l)FJotethat operationson SFR byte address 208or
Instruetkm

Mnemonic ADD ADD ADD ADD

Dsseription

m 1 2 1 2 1 2 1

Oaeilfstor Period 12 12 12 12 12 12 12

---

A,Rn A,direct A,@Ri A,#date

.-

Ma registerto
Accumulator Adddirect yteto b Accumulator Addindirect RAM toAccumulator Addimmediate dateto Accumulator Addregister to Accumulator with Carry Adddirect yteto b Accumulator with Carry Add indirect RAM to Accumulator with Carry Addimmediate datetoAcc with Ceny Subtract Register from Acewith borrow Subtrectdirect byte from Acc with borrow Subfrectindiract RAM from ACC with borrow Subtract immediate date from Accwith borrw Increment Accumulator Incrsmsnt register
Increment direct

ADDC A,Rn ADDC A,dirsct ADDC A.@Ri

bit addresses 209-215(i.e., the PSW or bits in the PSW) will also afect flag settings. Nota on inetruetionsat and ad&aesingmodes: Register R7-RO of the currently seRn lectedRegister Bank. direct 8-bit internal data locations address. This could been Internal Dsta RAM locetion (0-127) or a SFR [i.e., I/O pofi control register, status register, etc. (128-255)]. @Ri 8-bit internal data RAM location (O255)addreasedindirectly through register R1 or RO. #data 8-bitco~~t includedin instruction. #data 16 16-bitconstant includedin instmction. addr 16 16-bit destination address. Used by LCALL & LJMP. A branch can be anywhere within the 64K-byte Program Memory SddR$S SpCCe. addr 1 n-bit destination sddrrss. Used by ACALL& AJMP. The branch willbe within the same 2K-byte page of program memo~ as the first byte of the foil-g instruction. rel Signed(twoscomplement)S-bitoffset byte.Usedby SJMP end all conditional jumps. Range is -128 to + 127 bytes relative to first byte of the followinginstruction. Direct Addressedbit in Internal Data bit W or SpecialFunction Register.

ADDC A,#date SUBB A,Rn SUBB A,direct SUBB A.@Ri A.#date

2 1 2 1 2

12 12 12 12 12

INC INC INC INC

A Rn
direct

1 1
2

12
12 12

byte 1 12 Increment direct RAM 1 12 Decrement DEC A Accumulator 1 12 Decrement DEC Rn Regieter 2 12 Decrement direct DEC direct byte 1 12 Decrement DEC @Ri indirect RAM WImnemonicsopyrighted c @lntelCorpxetion980 1 @Ri

2-21

i~e
Mnemonic

McS@-51PROGRAMMERSGUIDE AND INSTRUCTION SET

Table 10.8051 Inetruotion Sat Summary (Continued) Deaoription ~we o:acw~r

tRITNWTIC OPERATIONS (Continued) Increment Date 1 NC DPTR Pointer 1 dUL AB MultiPiy B A& 1 )IV AB Ditie A byB )A A Decimel Adjuet 1 Accumulator .OGICALOPERATtONS ANDRegieterto 1 \NL A,Rn Accumulator ANDdiractbyte 2 tNL A,direct toAccumulator 1 4NL A,@Ri ANDindirect RAM to Accumulator 4NL A,#date ANDimmediate 2 datato Accumulator 4NL direct,A ANDAccumulator 2 todirect yte b 4NL diract, #data ANDimmediate 3 datatodirect yte b 1 ORregister to )RL A,Rn Accumulator 2RL A,direct ORdirect yteto b 2 Accumulator ORindiract RAM 1 2RL A,@Ri toAccumulator 2 ORimmediate 3RL A,#date datato Accumulator 3RL dirac4,A ORAccumulator 2 todirect yte b 3 3RL dirsct, ~date ORimmediate detetodiractbyte 1 KRL A,Rn Excluaiva-OR regieterto Armmulator 2 I(RL A,diraot ExclusMe-OR direct yteto b Accumulator 1 KRL A,@Ri Exclush/e-OR indirect RAMto Accumulator 2 KRL A,#data Exclusiva-OR immediateatato d Accumulator 2 Excluaive-OR KRL direct,A Accumulator to direct yte b 3 KRL direct, gdata Exclueive-OR immediateate d todirect yte b 1 Clear CLR A Accumulate 1 Complement CPL A Accumulator

. ------ urtm IIUNS {wmunuao) ---------LUUIGAL


,A . . ,.

24 48 48 12 12

RL RLC RR

A A A

1
Accumulator Left 1 Rotate Accumulator Left through theCarry 1 Rotate Accumulator Right 1 Rotate Accumulator Righthrough t mecerry 1 Swapnibbles within the Accumulator

12 12 12 12

RRC A 12 12 SWAP A 12 12 24 12 12 12 12 12 24 12 12 12 12

12

12 24 12 12

I
. 2-22

DATATRANSFER 12 1 Move MOV A,Rn register to Accumulator 12 2 Movediract MOV A,direct byteto Accumulator 12 1 Moveindirect MOV A,@Ri RAMto Accumulator 12 2 Move MOV A,#date immediate dateto Accumulator 12 1 Move MOV Rn.A Accumulator toregister 24 2 MOV Rn,direot Movedirect byte to register 12 2 Move MOV Rn,#date immediate date toregister 12 2 Mova MOV direct,A Accumulator todirect yte b 24 2 MOV direct,Rn Moveregister todirect yte b 24 3 MOV diract,directMovedirect bytatodiract 24 2 MOV direct,@Ri Moveindirect RAMto direct yte b 24 3 MOV direct, #date Move immediate data todireotbyte 12 1 Move MOV @Ri,A Accumulator to indirect RAM Allmnemonics copyrighted lntei orporation @ C 19S0

in~.

M=-51

PROGRAMMERS GUIDE AND INSTRUCTION SET

Table 10.8051 Instruction Set Summary(Continued)

Mnemonic

Oeecriptfon Byte ~~k~o


2 2
24

Mnemonic
GLH

Description

Byte

Oeciltetor Period

IDATATRANSFER (continued) MOV @Ri,direct Move direct byteto indirect RAM #date Move MOV @Ri, immediate dateto indirect RAM Dets MOV DPTR,#data16Loed Pointer a with 16-bit onstant c MOVC A,@A+DPTR MoveMe byterelativeo t DPTRto Acc MOVC A,@A+PC MoveCode byterelativeo t PCtoAcc MOVX A,@Ri Move External RAM(8-bit eddr) oAcc t Move MOVX A,@DPTR External RAM(l&bit addr) oAcc t Move Accto MOVX @Ri,A External RAM (8-bit ddr) a Move Accto MOVX @DPTR,A External RAM (lS-bitaddr) Push direct PUSH direct byteonto stack Pop direct POP direct bytefrom stack Exchange XCH A,Rn register with XCH A,direct Exchange direct yte b with Exchange indirect RAM with Exchange loworder Digif indirect RAM
with Acc

12

3 1 1 1

24

24

24

24

24

1 1 2 2 1 2

24

24

24

24

12

12

XCH

A,@Ri

12

XCHD A,@Ri

12

BOOLEAN VARIABLE MANIPULATION 12 1 wearwny L 12 Clesrdirect bit 2 CLR bit 1 12 SetCarry SETB c Setdirect it b 2 12 bit 1 12 Complement c CPL carry 12 Complement 2 bit CPL direct it b ANDdirect it b 24 2 C,bit ANL toCARRY 24 C,/bit ANDcomplement 2 ANL ofdirect it b tocarry ORdirect it b 2 24 C,bit ORL tocarry 24 C,/bit ORcomplement 2 ORL ofdirect it b tocarry 12 2 Movedirect it b MOV C,bit tocarry MoveCsrryto 24 2 MOV bit,C direct it b Jump ifCsny rel 24 2 JC isset Jump ifCarry 24 2 rel JNC notset ifdirecf 24 3 bit,rel Jump JB Bitisset 24 3 bi$rel Jump ifdirect JNB BitisNotset ifdirect 24 3 bit.rel Jumo JBC Bitisset& clearbit PROGRAM BRANCHING 2 ACALL addrl1 Absolute 24 Subroutine call LCALL addr16 Long 24 3 Subroutine call Return from 24 1 RET Subroutine Retumfrom 1 RETI 24 intempt 24 2 AJMP addrll Absolute Jump 24 3 WMP addr16 Long Jump Short umo J 24 2 SJMP rel (relative ddr) a VImnemonics copyrigMed lntel orporation @ C 1980

2-23

int#
Mnemonic

MCS@-51PROGRAMMERS GUIDE AND INSTRUCTION SET

Table 10.8051 Instruction Set SummarY (Continued) Description Byte ~or


(wnunueq
,-.,....
.,

Mnemonic

Description Syte ~~or

. . . . . . .. BmANGmNQ FmWrIANI
-m . ..-,,,..-

@A+DPTR Jump indirecf relativeothe t DPTR JZ rel Jump if Accumulator isZero Jump if JNZ rel Accumulator isNotZero CJNE A,direct,rei Compare direct yte b to AccandJump ifNotEquai CJNE A,#date,rel Compare immediate to AccandJumo ifNotEqual JMP

1
2 2 3

24 24 24 24

24

PROGRAM BRANCHING (Continued) 3 24 CJNE Rn,#date,rei Compare immediate to register and Jump ifNot Equal 24 3 CJNE @Ri, #data,rel Compare immediate to indirect and Jump ifNot Equal DJNZ Rn,rei 24 Decrement 2 register nd a Jump ifNot Zero 3 24 DJNZ direct,rel Decrement direct yte b andJump if NotZero NOP 12 NoOperation 1 dlmnemonics copyrighted @intelCorporation 1980

2-24

i~.
Hex
Code Number of Bytes

M~@-51 PROGRAMMERS GUIDE AND INSTRUCTION SET

Table 11. Instruction Q


Mnemonic

i in Haxadecirnal Order
Hex Number

Operands codesddr codesddr A A dstsaddr @RO @Rl RO RI R2 R3 R4 R5 R6 R7 bitaddr, odeaddr c codeaddr codeaddr A A dataaddr @RO @Rl RO RI R2 R3 R4 R5 R6 R7 bifaddr, odeaddr c codeaddr A A,#dats A,datsaddr A,@RO A,@Rl A,RO A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 bitaddr, odeaddl c codeaddr

code 33 34 35 36 37 36 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 46 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 5e 59 5A 5B 5C 5D 5E 5F eo 61 62 63 64 65

of Bytes 1 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 3 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 3 2 2 1 1 1 1 1 1 1 1 1 1 2 2
2

Mnemonic RLC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADD(2 JC AJMP ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL JNC ACALL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL JZ AJMP XRL XRL XRL XRL

operands A A,#data A,dats addr A,@RO A,@Rl A,RO A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 codeaddr codeaddr datsaddr,A dateaddr, #data A,#data A,dataaddr A,@RO A,@Rl A,RO A,R1 A,R2 A,R3 A,R4 A,R5 A,Re A,R7 codeaddr codeaddr dataaddr,A dataaddr,#data A,#data A,datsaddr A,@RO A,@Rl A,RO A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 codeaddr codeaddr datesddr,A datesddr,#data A,#data A,dataaddr

00 01 02 03 04 05 06 07 06 Oe OA OB Oc OD OE OF 10 11 12 13 14 15 16 17 16 19 1A lB lC ID lE IF 20 21 22 23 24 25 26 27 28 23 2A 2B 2C 2D 2E 2F 30 31 32

1
2 3 1 1 2 1 1 1 1 1

1 1 1 1 1
3 2 3 1 1

2 1 1 1 1 1 1 1 1 1 1 3 2 1 1 2 2 1 1 1 1 1 1 1 ; : 2 1

NOP AJMP WMP RR INC INC INC INC INC INC INC INC INC INC INC INC JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC JB AJMP RET RL ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD

JNB
ACALL RETI

3 2
2

2-25

int#
Hex
Code Number of Bytaa

M~@.51

PROGRAMMERS

GUIDE AND INSTRUCTION

SET

.. .

. .---------

-----

,--.

.....---,

Mnemonic XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV
MOV MOV hAov

Oparanda A,@RO A,@Rl ~RO A,RI A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 codeaddr codeaddr C,bitaddr @A+DPTR A,#data datsaddr,#data @RO, #data @Rl,#data RO, data # Rl, #data R2,#data R3,#data R4,#data R5,#data R6,#data R7,#data codeaddr codeaddr C,bitaddr A,@A+PC AB dataaddr, ataaddr d dataaddr,@RO dataaddr,@Rl dataaddr,RO dataaddr,Rl dataaddr,R2 dataaddr,R3 dataaddr,R4 dataaddr,R5 dataaddr,R6 dataaddr,R7 DPTR, data # codeaddr bitsddr,C A,@ A+DPTR A,#data A,dataaddr A,@RO A,@Rl A,RO

Hex Number Mnemonic Coda of Bytaa 99 9A 9B 9C 9D 9E 9F AO Al A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF BO B1 02 B3 24 B5 B6 B7 08 B9 BA BB BC BD BE BF co c1 C2 C3 C4 C5 C8 C7 C8 C9 CA CB

operands A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 C,/bitaddr codeaddr C,bit addr DPTR AB @RO,dataaddr @Rl,data addr RO,dataddr a Rl,dataaddr R2,dataaddr R3,dstaaddr R4,dataaddr R5,dataaddr R6,dataaddr R7,dataaddr C,/bitaddr codeaddr bitaddr c A,#data,code addr A,dataaddr,code addr @RO, #dats,codaaddr @Rl,#data,code addr RO,#data,codeaddr Rl,#datasodeaddr R2,#data$odeaddr R3,#daQcodeaddr R4,#dats@de addr R5,#data,code addr R8,#data,code addr R7,#data,code addr dataaddr codeaddr bitaddr c A A,dataaddr A,@RO A,@Rl A,RO A,R1 A,R2 A,R3

5s 57 56 59 3A 5B 5C 6D SE SF 70 71 72 73 74 75 76 77 76 79 7A 70 7C 7D 7E 7F 80 81 82 83 84 85 86 87 66 89 8A 8B SC 8D 8E 8F 90 91 92 93 94 95 M 97 98

1 1 1 1
1 1 1 1 1 1 2 2 2 1 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 3 2 2 2 2 2 2 2 2 2 2 3 2 2 1 2 2 1 1 1

1
1 1 1 1 1 1 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 1 1 2
1

Mov
MOV MOV SJMP AJMP ANL MOVC DIV MOV MOV MOV
MOV

MOV MOV MOV MOV


MOV

MOV MOV MOV ACALL MOV


MOVC

SUBB SUBB SUBB SUBB SUBB SUBB SUBB ORL AJMP MOV INC MUL reaervad MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV ANL ACALL CPL CPL CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE PUSH AJMP CLR CLR SWAP XCH
XCH

SUBB SUBB SUBB SUBB SUBB

1 1 1 1

XCH XCH XCH XCH XCH

2-26

ir&
Hex

M=@-51 PROGRAMMERSGUIDE AND INSTRUCTION SET

Code

Table 11. Instruction Opoode In1 xadecimal Order (Continued) Number Number Hex Mnemonic Operende Code of Bytee nemonic of Bytee

Operande

cc
CD CE CF Do D1 D2 D3 D4 D5 D6 D7 CM D9 DA DB DC DD DE DF EO El E2 E3 E4 E5

1 1 1 1
2 2 2 1 1 3 1 1 2 2 2 2 2 2 2 2 1 2 1 1 1 2

XCH XCH XCH XCH POP ACALL SETB SETB DA DJNZ XCHD XCHD DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ MOVX AJMP MOVX MOVX CLR MOV

A,R4 A,R5 A,R6 A,R7 dateaddr codaaddr biladdr c A dateaddr,codeaddr A,@RO A,@Rl RO,codeddr a Rl,codeaddr R2,code addr R3,cade addr R4,code addr R5,coda addr R6,c0de addr R7,code addr A,@DPTR codeaddr A,@RO A,@Rl A A,dateaddr

E6 E7 E8 E9 EA EB EC ED EE EF FO FI F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

1 1 1 1 1 1 1 1 i 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1

MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOVX ACALL MOVX MOVX CPL MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

A,@RO A,@Rl A,RO A,R1 A,R2 A,R3 A,R4 A,R5 A,R6 A,R7 @DPTR,A codeaddr @RO,A @Rl,A A dataaddr,A @RO,A @Rl~ RO,A RI,A R2,A R3,A R4,A R5,A R6,A R7,A

2-27

Das könnte Ihnen auch gefallen