《《片机指令系统》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《片机指令系统》PPT课件.ppt(35页珍藏版)》请在三一办公上搜索。
1、51系列单片机指令系统,51系列单片机指令系统有111条指令其中有49条单字节、45条双字节、17条三字节有64条单周期、45条双周期、2条四周期按功能可分为数据传送类指令算术运算类指令逻辑运算类指令位操作类指令控制转移类指令,指令寻址方式,51系列单片机指令系统有七种寻址方式立即寻址方式直接寻址方式寄存器寻址方式寄存器间接寻址方式基址加变址寻址方式相对寻址方式位寻址方式,立即寻址方式,立即寻址方式在指令中直接给出操作数表示立即数时前面加#立即数可以用二进制数(B)十六进制数(H)十进制数例:MOV A,#23H MOV DPTR,#2040H,直接寻址方式,直接寻址方式指令中给出操作数地址直
2、接寻址方式可寻址内部128字节RAM特殊功能寄存器SFR特殊功能寄存器只能使用直接寻址方式,可以用其名称表示直接地址例:MOV 90H,A MOV P1,A,寄存器寻址方式,寄存器寻址方式指令中给出寄存器编号寄存器编号为 R0-R7其对应单元位置由 RS1、RS0 决定例INC R0ADD A,R2,寄存器间接寻址方式,寄存器间接寻址在指令中给出存放操作数地址的寄存器可用于间接寻址方式的寄存器有R0、R1 用于寻址内部128字节RAMDPTR 用于寻址外扩数据存储器(R0、R1)寻址外扩数据存储器,只能用寄存器间接寻址方式例:MOV A,R0 MOVX DPTR,A,基址加变址寻址方式,基址加
3、变址寻址方式是以累加器A中内容加上基址寄存器的值形成操作数地址可用做基址寄存器的是DPTR 或 PC基址加变址寻址方式只用于读取程序存储器中数据例:MOVC A,A+DPTR MOVC A,A+PC,相对寻址方式,相对寻址方式仅用于转移指令相对转移的基准是PC当前值相对转移的范围为-128+127所有的条件转移都采用相对寻址方式例:JNZ rel rel 可为一指令标号,其位置应在相对转移的范围内,位寻址方式,对片内RAM中20H-2FH单元的各位和SFR中单元地址能被8整除的各位进行位操作。位地址空间为:00H-0FFH位地址采用直接地址形式与字节直接寻址的区别:传送指令由另一操作数判断专用
4、位操作指令,数据传送类指令,数据传送类指令有29条,分为5类内部RAM及SFR间传送 MOV读写外部数据存储器 MOVX读程序存储器 MOVC数据交换 XCH XCHD SWAP栈操作 PUSH POP传送指令不影响标志位,内部RAM及SFR间传送(MOV),另有一条16位传送指令 MOV DPTR,#16,读写外部数据存储器,读写外部数据存储器指令助记符为MOVX读写外部数据存储器必须通过累加器A读写外部数据存储器指令只能用间接寻址方式间址单元为 DPTR 或 R0、R1 MOVX A,DPTR MOVX DPTR,A MOVX A,Ri MOVX Ri,A,读程序存储器,读程序存储器指令助
5、记符为 MOVC读程序存储器必须通过累加器A读程序存储器指令只能用变址寻址方式变址单元为 DPTR 或PC MOVC A,A+DPTR MOVC A,A+PC,数据交换,字节交换指令 Rn XCH A,direct Ri半字节交换指令 XCHD A,Ri 累加器A中低四位与Ri所指单元低四位交换 SWAP A 累加器A中高四位与低四位交换,栈操作指令,栈操作只能用直接寻址方式压栈指令 PUSH direct出栈指令 POP direct,算术运算指令,算术运算指令共有24条算术运算指令将影响标志位算术运算包括加 ADD、带进位加 ADDC带借位减 SUBB增量 INC、减量 DEC乘 MUL、
6、除 DIV十进制调整 DA A,加减指令,其他算术运算指令,16位寄存器加一指令 INC DPTR十进制调整指令 DA A乘法指令 MUL AB(A)X(B)=BA Cy=0 若乘积0FFH 则 OV=1除法指令 DIV AB(A)/(B)=A B Cy=0 若(B)=0 则 OV=1,逻辑运算类指令,逻辑运算类指令有24条单操作数指令累加器操作指令移位指令双操作数指令逻辑与逻辑或逻辑异或,累加器操作指令,累加器清零CLR A只影响P标志累加器求反CPL A不影响标志,移位指令,移位指令必须经累加器A所有移位都是循环移位,分左移、右移可带进位移或不带进位移RL A RLC ARR A RRC
7、A除带进位移位外,不影响标志,双操作数逻辑运算指令,以累加器A为目的单元以直接地址direct为目的单元(读-修改-写),控制转移类指令,控制转移类指令有17条,分为:无条件转移指令判零转移指令比较转移指令循环转移指令调用返回指令,无条件转移指令,短转移指令 AJMP addr11PC高5位与指令中给出的11位地址相加,可在2K范围内转移长转移指令 LJMP addr16转移范围为整个64K存储空间相对转移指令 SJMP rel转移范围为-128+127散转指令 JMP A+DPTR,散转指令,累加器A中内容与DPTR内容相加形成转移地址,A=?,AJMP,AJMP,AJMP,AJMP,AJM
8、P,A=0 A=2 A=4 A=6 A=8,比较转移指令,比较转移指令CJNE 操作数1,操作数2,操作数3 A,direct,rel A,#data,rel Rn,#data,rel Ri,#data,rel操作数1与操作数2比较,不等于零转移操作数1操作数2 则 Cy=“1”,CJNE,JC,Y,N,Y,N,A=B AB,循环转移指令,循环转移指令是相对转移循环计数器减一,不等于“0”转移循环计数器可用工作寄存器 DJNZ Rn,rel直接地址 DJNZ direct,rel,调用返回指令,调用指令短调用(2K范围内)ACALL addr11长调用(64K范围内)LCALL addr16返
9、回指令子程序返回 RET中断返回 RETI空操作 NOP,判零转移指令,判零是根据累加器A中是否为零的状态进行转移判零转移指令有2条,都是相对转移指令JZ 累加器为“0”转移JNZ 累加器非“0”转移,位寻址与布尔处理器,8051中含有一个一位的布尔处理器布尔处理器以Cy为位累加器布尔处理器可以进行逻辑与、逻辑或运算置位、清零、求反位处理单元有256个地址20H-2FH单元SFR中地址能被8整除的单元,位地址的表示形式,位地址只有直接寻址方式直接地址 0D5H单元地址.位序号 0D0H.5单元名称.位序号 PSW.5位寄存器名称 F0,位操作类指令(17条),位传送指令:MOV C,bit M
10、OV bit,C位变量修改指令:清“0”CLR C CLR bit置“1”SETB C SETB bit求反 CPL C CPL bit,位变量逻辑操作指令,指定位变量与位累加器Cy进行逻辑操作,结果在Cy中逻辑与 ANL C,bit ANL C,/bit 逻辑或 ORL C,bit ORL C,/bit注意区分位操作指令与字节操作指令 ANL C,20H ANL A,20H,判位转移指令,JC 有进位转移JNC 无进位转移JB bit=“1”转移JNB bit=“0”转移JBC bit=“1”转移且转移后将 bit 清零,指令格式,标号:操作码 操作数1,操作数2,操作数3;注释标号用来表示转移地址操作码指明指令操作操作数指出参加操作的数据或其存放地址注释对指令功能进行说明注意格式中各段之间的间隔符,