If you can't read please download the document
Upload
wallis
View
103
Download
4
Embed Size (px)
DESCRIPTION
第 3 章 MCS-51 指令系统. 指令系统概述 MCS-51 指令的寻址方式 MCS-51 指令系统介绍. 3.1 指令系统概述. 指令 —— 计算机能够识别和执行的命令。 指令系统 —— 指令的集合或全体,因机器而异。. 指令的 三种表示形式 二进制形式 —— 直接为 CPU 执行 16 进制形式 —— 阅读和书写 汇编形式 —— 编写程序。. MCS-51 指令系统. 51 系列单片机指令集含有 111 条指令 按指令 所占字节数 分类: 单字节 ( 49 条); 双字节 ( 46 条); 3 字节 ( 16 条) - PowerPoint PPT Presentation
Citation preview
3 MCS-51 MCS-51 MCS-51
3.1 CPU16
MCS-5151111
49463166445422924241717
MCS-51 [ ]1-8/: ; [:] [][,][;]
MCS-51 Rn R0~R7#data 8#data16 16direct 8@Ri R0R1@DPTR DPTRbit 8addr11 11addr16 16rel 8$
3.2 MCS-51 MCS-51(+)
3.2.1 816
MOV A, #30H A #30H MOV DPTR, #8000H DPTR #8000H
1
2
3.2.2 80H FFHRAM1288052256 MOV A, 30H A 30H ANL 30H, #30H 30H30H#30H MOV 50H 30H 50H(30H)
1
2
3.2.3 R0R7RS1RS2ABCYDPTR MOV A, R3 A R3 ANL A #30H MOV R0 30H
3.2.4 RAM00H7FH/FFHR0R1SP0000HFFFFH MOV A, @R0 A ((R0)) MOVX A, @DPTR A ((DPTR)) MOV R0 #30H MOV R0 30H
1
2
3.2.5 (+) DPTRPCA816 =+ DPTR/PC DPTR/PCrel MOVC A, @A+DPTR MOVC A, @A+PC
3.2.6 PCrelrel8128+127PC128+127 rel =+rel = JNZ rel A JBBITrel CJNE A,#data,relrelrelrel
3.2.7 RAMSFRRAM20H2FH00H 7FHSFR12880H 8 bit
MOV C00H (C) (00H) ANL C90H (C) (C)((90H))
3.3 MCS-51 29 24 24 1717
3.3.1 5/29 MOV 16: MOVX 4 MOVC 2 XCHXCHDSWAP 5 PUSHPOP 2
16
A4Rn354
A1 MOV A#data;A #data2 MOV ARn ;A (Rn) (n=0~7)3RAMSFR MOV Adirect ; A (direct)4RAM MOV A@Ri ;A ((Ri)) (i=01)
RAMSFR
RAM
Rn5 MOV Rn#data; (Rn) #data (n=0~7) 6 MOV RnA ;Rn (A) (n=0~7)7RAMSFR MOV Rndirect ;Rn (direct) (n=0~7)
RAMSFR
8RAMSFR MOV direct#data ; direct #data9RAMSFR MOV direct A ; direct (A)10RAMSFR MOV direct Rn ; direct (Rn) (n=0~7)11RAMSFR MOV direct1direct2 ; direct1 (direct2)12RAMRAMSFR MOV direct@Ri; direct ((Ri)) (i=01)
RAMSFR
RAMSFR
RAMSFR
RAMSFR
RAMSFR
13RAM MOV @Ri #data; (Ri) #data (i=01) 14RAM MOV @Ri A; (Ri) (A) (i=01) 15RAMSFRRAM MOV @Ri direct; (Ri) (direct) (i=01) 1616 MOV DPTR #data16 ; DPTR #data16; DPH #dataH ; DPL #dataL
RAM
RAM
RAMSFRRAM
16
4MOVX A@DPTR;A ((DPTR)) MOVX @DPTRA ; (DPTR) (A) MOVX A@Ri ; A ((Ri)) (i=01) MOVX @Ri A ; A ((Ri)) (i=01)
12RAM 64K34RAM00000H~00FFH
2MOVC A@A+DPTR ; A ((A)+(DPTR)) MOVC A@A+PC ; PC (PC)+1 ; A ((A)+(PC))DPTRPCAA
DPTR
PC
5XCH ARn ; (A)(Rn) (n=07) XCH Adirect ; (A) (direct) XCH A@Ri; (A) ((Ri)) (i=01) XCHD A@Ri ; (A30) ((Ri)30) (i=01) SWAP A ; (A30) (A74)
XCHExchangePSWPXCHDExchange Decimal Ri
RAMSFR
RAM
RAM44
44
2PUSH direct ; SP (SP)+1 ;(SP) (direct) POP direct ; direct ((SP)) ;SP (SP)1RnAAACCE0HRn
3.3.2 24ADD 4:ADDC 4INC 5 DA 1 SUBB 4 DEC 4 MUL 1 DIV 1
4ADD A#data ; A (A)+#data ADD ARn; A (A)+(Rn) (n=07) ADD A@Ri ; A (A)+((Ri)) (i=01) ADD Adirect ; A (A)+(direct)
8AALUPSW
RAMSFR
APSWMOV A#5AHADD A#6BH A=0 1 0 1 1 0 1 0B + data=0 1 1 0 1 0 1 1BCy 1 1 0 0 0 1 0 1BPSW:
CyACF0RS1RS0OV-P01000100
4ADDC A#data ; A (A)+#data+Cy ADDC ARn; A (A)+(Rn)+Cy (n=07) ADDC A@Ri ; A (A)+((Ri))+Cy (i=01) ADDC Adirect ; A (A)+(direct)+Cy
CyCyCyPSWCy
5INC A; A (A)+1INC Rn; Rn (Rn)+1 (n=07) INC direct ; direct (direct)+1INC @Ri ; (Rn) ((Rn))+1 (n=01) INC DPTR; DPTR (DPTR)+1
INCIncreasePSWP
1DA A 49BCDAC=1A (A)+06H 49BCDCY=1A (A)+60H
DADecimal AdjustBCDBCD
BCDALU44161BCDALUBCDBCDBCD101
85+59=144BCDBCD
ORG1000HMOVA,#85H; A #85HADDA,#59H; A (A)+#59HDAA; A #44HCy=1SJMP$END
BCDBCDCy1BCDA4BCDBCD44H60H06H0 1 1 0 0 0 0 0 B0 0 0 0 0 1 1 0 B
BCD DA ABCD12+3BCD
91-34=57BCDORG1000HCLRC; C 0MOVA,#9AH ; A #9AHSUBBA,#34H; [-34]ADDA,#91H ;91+[-34]DAA; BCDSJMP$END
BCDBCDA=1 0 0 1 1 0 1 0 B 99 - [34]BCD=0 0 1 1 0 1 0 0 B - 34[-34]=0 1 1 0 0 1 1 0 B91=1 0 0 1 0 0 0 1 B1 1 1 1 0 1 1 1 B++0 1 0 1 0 1 1 1 BCy=1 5760H0 1 1 0 0 0 0 0 B
4SUBB A#data ; A (A)#dataCy SUBB ARn ; A (A)(Rn)Cy (n=07) SUBB Adirect ; A (A) (direct) Cy SUBB A @Ri ; A (A)((Ri))Cy (n=01)
SUBBSubtraction BorrowPSWOV-OV=0-OV=0 -OV=1 -OV=1
RAM
4DEC A; A (A)1 DEC Rn ; Rn (Rn)1 (n=07) DEC direct ; direct (direct) 1 DEC @Ri ; (Ri) ((Ri))1 (n=01)
DECDecreaseDEC APSWP
RAM1
2MUL AB; B A (A)(B) ; Cy0 DIV A B ; A (A)/(B); B (A)/(B); Cy 0OV 0
MULMultiply DIVDivide48T48
8
3.3.3 24ANL 6:ORL 6XRL 6 CLRCPL 2 RLRLCRRRRC 4
6ANL A#data ; A (A)#data ANL ARn ; A (A)(Rn) (n=07) ANL Adirect ; A (A)(direct) ANL A @Ri ; A(A)((Ri)) (n=01) ANL directA; direct (direct)(A) ANL direct#data; direct (direct)#data
ANLAND LogicalPSWP
6ORL A#data ; A (A) #data ORL ARn ; A (A) (Rn) (n=07) ORL Adirect ; A (A) (direct) ORL A @Ri ; A(A) ((Ri)) (n=01) ORL directA; direct (direct) (A) ORL direct#data; direct (direct) #data
ORLOR LogicalPSWP
1
RAMSFR
6XRL A#data ; A (A) #data XRL ARn ; A (A) (Rn) (n=07) XRL Adirect ; A (A) (direct) XRL A @Ri ; A (A) ((Ri)) (n=01) XRL directA; direct (direct) (A) XRL direct#data; direct (direct) #data
XRLXOR LogicalPSWP
++++++
RAMSFR
2CLR A ; A 0 CPL A ; A CLRClearingCPLComplement of onesCLR ACy=0
CLRCPL
4RL A RLC ARR A RRC ARLRotate LeftRRRotate Right24PSWCyP
1
3.3.4 17LJMPAJMPSJMPJMP 4:JZJNZCJNEDJNZ 8 LCALLACALLRETRETI 4 NOP 1
4LJMP addr16 ; PC addr16 AJMP addr11 ; PC(PC)+2; PC100 A100 SJMP rel ; PC (PC)+2; PC (PC)+rel JMP @A+DPTR ; PC (A)+(DPTR)
PSWPC23
LJMP
AJMP 2KBAJMP addr11 ; PC(PC)+2PC15-11; PC100 addr11 a10 a9 a8 0 0 0 0 1 a7 a6 a0 a10~a011addr11
AJMP 01320000H07FFH0800H0FFFHF800HFFFFHROM64KB322KBPC15~PC11PC10~PC0
0000H
00010
3-11 AJMP
5
2
11
A10 A9 A8 00001 A7 A0
F800H
FFFFH
1000H
17FFH
0800H
0FFFH
PC15 PC14 PC13 PC12 PC11 PC10 PC9 PC8 PC7 PC0
AJMP
31
0
1
SJMP relORG1000H1000H 7401HSTART: MOVA, #01H1002H F8HMOVR0, A1017H 80H relSJMPSTARTEND=+2+relrel=--2= 1000H-1017H-2 = -19H=-25rel=[25]=E7H
8A JZJNZ 2:CJNE 41DJNZ 2
A2JZ rel;(A)0PC (PC)+2 ;(A)=0PC (PC)+2+rel JNZ rel;(A)=0PC (PC)+2 ;(A)0PC (PC)+2+relrelrel
4CJNE A#datarel CJNE Rn#datarel (n=07) CJNE @Ri#datarel (i=01) CJNE Adirectrel
3rel-125~+130ABCyA>=BCy=0A
12DJNZ Rnrel ; Rn (Rn)-1 (n=07) ;(Rn)=0PC (PC)+2 ;(Rn)0PC (PC)+2+rel DJNZ directrel ; direct (direct)-1 ;(direct)=0PC (PC)+3 ;(direct)0PC (PC)+3+rel DJNZDDecreaseJJumpNNotZZeroPSW
4LCALL addr16 ; PC (PC)+3 ; SP (SP)+1(SP) PC70 ; SP (SP)+1(SP) PC158 ; PC addr16 ACALL addr11 ; PC (PC)+2 ; SP (SP)+1(SP) PC70 ; SP (SP)+1(SP) PC158 ; PC100 A100 RET ; PC158 ((SP)) SP (SP) 1 ; PC70 ((SP)) SP (SP) 1 RETI ; PC158 ((SP))SP (SP) 1 ; PC70 ((SP))SP (SP) 1
4NOP; PC (PC)+1
PC112 0000000000H
3.3.5 17 MOV 2: CRLSETBCPL 6 ANLORL 4 JCJNCJBJNBJBC 5
2MOV Cbit ; Cy (bit) MOV bitC ; bit (Cy)
bit8bitbit
6CLR C ; Cy 0 CLR bit ; bit 0 SETB C ; Cy 1SETB bit ; bit 1 CPL C ; Cy CPL bit ; bit
CLRClearSETBSet Bit
4ANL Cbit ; Cy (Cy)(bit) ANL C ; Cy (Cy) ORL Cbit ; Cy (Cy)(bit) ORL C ; Cy (Cy)
5JC rel ;(Cy)=1PC (PC)+2+rel ;(Cy)=0PC (PC)+2 JNC rel ;(Cy)=0PC (PC)+2+rel ;(Cy)=1PC (PC)+2 JB bitrel ;(bit)=1PC (PC)+3+rel ;(bit)=0PC (PC)+3 JB bitrel ;(bit)=0PC (PC)+3+rel ;(bit)=1PC (PC)+3JBC bitrel ;(bit)=0PC (PC)+3 ;(bit)=1PC (PC)+3+relbit0
The End