第 3 章 MCS-51 指令系统

  • 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