1、第第章章MCSMCS5151指指令令系系统统 本章内容本章内容Single Chip Microcomputer123寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址4寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址5寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址R0-R7ABDPTR6寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址R0R1DPTR7891011寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址ADPTRPC12寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址13寄存器寻址直接寻址
2、立即数寻址寄存器间接寻址变址寻址相对寻址位寻址10 0 0 0 0 0 0 0147F7F77776F6F67675F5F57574F4F474737372F2F27271F1F17170F0F0707 7E7E76766E6E66665E5E56564E4E4646 36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D454535352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C4444 34342C2C24241C1C14140C0C04047B7B73736B6B6363
3、5B5B53534B4B4343 33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A52524A4A4242 32322A2A22221A1A12120A0A020279797171696961615959515149494141 313129292121191911110909010178787070686860605858505048484040 3030282820201818101008080000 例:3D3D 3C3C 3B3B3F3F 3E3E3A3A 3939383827H27H15寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址
4、相对寻址位寻址0 0 0 0 0 0 01 0161、指令描述约定、指令描述约定符符 号号含含 义义RnRn表示当前选定寄存器组的工作寄存器表示当前选定寄存器组的工作寄存器R0R0R7R7RiRi表示作为间接寻址的地址指针表示作为间接寻址的地址指针R0R0R1R1#data#data表示表示8 8位立即数,即位立即数,即00H00HFFHFFH#data16#data16 表示表示1616位立即数,即位立即数,即0000H0000HFFFFHFFFFHaddr16addr16表示表示1616位地址,用于位地址,用于64K64K范围内寻址范围内寻址addr11addr11表示表示1111位地址,
5、用于位地址,用于2K2K范围内寻址范围内寻址directdirect8 8位直接地址,可以是内部位直接地址,可以是内部RAMRAM区的某一单元或某一专用功能寄存器的地址区的某一单元或某一专用功能寄存器的地址RelRel带符号的带符号的8 8位偏移量(位偏移量(-128-128+127+127)BitBit位寻址区的直接寻址位位寻址区的直接寻址位(X X)X X地址单元中的内容,或地址单元中的内容,或X X作为间接寻址寄存器时所指单元的内容作为间接寻址寄存器时所指单元的内容将将 后面的内容传送到前面去后面的内容传送到前面去1718MOV ,MOV A,#20H 19 MOV DPTR,#data
6、16 MOVX ,20 21 22助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期INC A00000100AA+1影响影响PSW的的P标志标志1INC Rn00001rrrRnRn+1n=07,rrr=0001111INC direct0101 direct(direct)(direct)+1 1INC Ri0000011i(Ri)(Ri)+1i=0,11INC DPTR10100011DPTRDPTR+1 2DEC A00010100AA-1影响影响PSW的的P标志标志1DEC Rn00011rrrRnRn-1n=07,rrr=0001111DEC d
7、irect000101 0 1 direct(direct)(direct)+1 1DEC Ri0001011i(Ri)(Ri)-1i=0,1123 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期ANL A,direct0 1 0 1 0 1 0 1 directAAdirect按位相与按位相与1ANL A,Rn01011rrrAARnn=07,rrr=0001111ANL A,Ri0101011iAA(Ri)i=0,11ANL A,#data01010100 dataAA#data 1ANL direct,A01010010direct(direct)
8、(direct)A不影响不影响PSW的的P标志标志1ANL direct,#data01010011 direct data(direct)(direct)#data不影响不影响PSW的的P标志标志224 01000011 direct data助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期ORL A,direct01000101 directAAdirect按位相或按位相或1ORL A,Rn01001rrrAARnn=07,rrr=0001111ORL A,Ri0100011iAA(Ri)i=0,11ORL A,#data01000100dataAA#
9、data 1ORL direct,A01000010 direct(direct)(direct)A不影响不影响PSW的的P标志标志1ORL direct,#data(direct)(direct)#data不影响不影响PSW的的P标志标志225 助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器机器周期周期XRL A,direct0 1 1 0 0 1 0 1 directAA(direct)按位相异或按位相异或1XRL A,Rn01101rrrAA Rnn=07,rrr=0001111XRL A,Ri0110011iAA (Ri)i=0,11XRL A,#data0
10、1100100 dataAA#data 1XRL direct,A0 1 1 0 0 0 1 0 direct(direct)(direct)A不影响不影响PSW的的P标志标志1XRL direct,#data01100011 direct data(direct)(direct)#data不影响不影响PSW的的P标志标志226助记符格式机器码(B)相应操作指令说明机器周期CLR A11100100A00HA中内容清0,影响P标志1CPL A11110100A中内容按位取反,影响P标志1AA27A.0A.7A.0A.7A.0A.7A.0A.7CYCY RL A RR A RLC A RRC A
11、28假设执行该指假设执行该指令前,令前,PCPC的值的值为为0000H0000H。29 PC高5位(保持不变)PC低11位A10A9A800 001A7A6A5A4A3A2A1A0操作码(第一字节)操作数(第二字节)程序计数器PC30 例:31助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期DJNZ Rn,rel11011rrr relRnRn-1,若,若Rn0,则,则PCPC+rel,否则顺序执行否则顺序执行2DJNZ direct,rel11010101 direct rel(direct)(direct)-1,若(若(direct)0,则,则PCPC+rel,否则顺
12、序执行否则顺序执行232助记符格式助记符格式机器码机器码(B)(B)相应操作相应操作机器机器周期周期CJNE CJNE A,#data,relA,#data,rel10110100 10110100 data data relrel若若A#data,A#data,则则PCPCPC+relPC+rel,否则顺否则顺序执行;若序执行;若 A#dataA#data,则,则CY=1CY=1,否则否则CY=0CY=02 2CJNE CJNE Rn,#data,relRn,#data,rel10111rrr10111rrrdata data relrel若若 Rn#dataRn#data,则,则PCPCP
13、C+relPC+rel,否则否则顺序执行;若顺序执行;若RnRn#data#data,则,则CY=1CY=1,否否则则CY=0CY=02 2CJNE CJNE Ri,#data,relRi,#data,rel1011011i1011011idata data relrel若若(Ri)#dataRi)#data,则,则PCPCPC+relPC+rel,否否则顺序执行;若则顺序执行;若(RiRi)#data,)#data,则则CY=1CY=1,否则否则CY=0CY=02 2CJNE CJNE A,direct,relA,direct,rel1011010110110101d i r e c t d
14、 i r e c t relrel若若A(direct)A(direct),则,则PCPCPC+relPC+rel,否否则顺序执行;若则顺序执行;若A(direct)A(direct),则,则CY=1CY=1,否则否则CY=0CY=02 233还有什么方法实还有什么方法实现循环的终止现循环的终止?将00H0FH这16个数顺序地置入片内RAM20H2FH单元中。MOV R0,#20H MOV R7,#0FH CLR ALOOP:MOV R0,A INC A INC R0 DJNZ R7,LOOP SJMP$34MOV R0,#20H MOV R7,#0FH CLR ALOOP:MOV R0,A
15、INC A INC R0 CJNE A,#0FH,LOOP SJMP$35 MOV R0,#20H MOV A,#0FH MOV 30H,#00HLOOP:MOV R0,30H INC 30H INC R0 DEC A JNZ LOOP SJMP$36 MOV R0,#20H MOV A,#0FH MOV 30H,#00HLOOP:MOV R0,30H INC 30H INC R0 SUBB A,#01H JNC LOOP SJMP$37助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期A C A L L addr11a10a9a810001addr70PC PC+2SP
16、SP+1,(SP)PC07SP SP+1,(SP)PC815PC010 addr112助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期L C A L L addr1600010010addr158addr70PCPC+3SP SP+1,SPPC07SP SP+1,SPPC815PC addr16238助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期RET00100010PC815 (SP),SP SP-1PC07 (SP),SP SP-1子程序返回指令子程序返回指令2RETI00110010PC815 SP,SP SP-1PC07 SP,SP SP-
17、1中断返回指令中断返回指令2助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明NOP00000000空操作空操作消耗消耗1个机器周期个机器周期39单元地址单元地址2FH2FH2EH2EH2DH2DH2CH2CH2BH2BH2AH2AH29H29H28H28H27H27H26H26H25H25H24H24H23H23H22H22H21H21H20H20H7F7F77776F6F67675F5F57574F4F47473F3F37372F2F27271F1F17170F0F0707 MSBMSB 位地址位地址 LSBLSB7E7E76766E6E66665E5E56564E4E
18、46463E3E36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D45453D3D35352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C44443C3C34342C2C24241C1C14140C0C04047B7B73736B6B63635B5B53534B4B43433B3B33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A52524A4A42423A3A32322A2A22221A1A12120A0A020279797171
19、69696161595951514949414139393131292921211919111109090101787870706868606058585050484840403838303028282020181810100808000040助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期MOV C,bit10100010CY bit位传送指令,结果影响位传送指令,结果影响CY标志标志2MOV bit,C10010010bit CY位传送指令,结果不影响位传送指令,结果不影响PSW2助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机
20、器周期机器周期CLR C11000011CY 0位清位清0指令,结果影响指令,结果影响CY标志标志1CLR bit11000010 bitbit 0位清位清0指令,结果不影响指令,结果不影响PSW1SETB C11010011CY1位置位置1指令,结果影响指令,结果影响CY标志标志1SETB bitbit 1位置位置1指令,结果不影响指令,结果不影响PSW111010010 bit41助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期ANL C,bit10000010 bitCY CYbit位与指令位与指令2ANL C/bit10110010 bit位与指令
21、位与指令2ORL,bit01110010 bitCY CYbit位或指令位或指令2ORL C/bit10100010 bit位或指令位或指令2CPL C10110011位取反指令位取反指令2CPL bit10110010位取反指令,结果位取反指令,结果不影响不影响CY2CY CYbitCY CYbitCYCYbitbit助记符格式机器码(B)相应操作机器周期JB bit,rel00100000bit rel若bit=1,则PCPC+rel,否则顺序执行2JNB bit,rel00110000 bit rel若bit=0,则PCPC+rel,否则顺序执行2JBC bit,rel00010000 bit rel若 bit=1,则PCPC+rel,bit0,否则顺序执行242助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期JC rel01000000若若CY=0,则,则PCPC+rel,否则顺序执行否则顺序执行2JNC rel01010000若若CY0,则,则PCPC+rel,否则顺序执行否则顺序执行24344 454647