《单片机应用技术-指令系统讲义》由会员分享,可在线阅读,更多相关《单片机应用技术-指令系统讲义(81页珍藏版)》请在金锄头文库上搜索。
1、单片机应用技术,应用电子技术专业,主讲:唐扬波 E-mail:,指令系统,单片机应用技术,1.指令的格式,一般格式: 操作助记符 目的操作数,源操作数;注释 注释中的常用符号: Rn(n=07)-当前工作寄存器组中的寄存器之一; Ri(i=0,1)-当前工作寄存器组中的R0或R1; - 间址寄存器前缀; #data -8位立即数; #data16-16位立即数; direct-片内低128个RAM单元地址及SFR地址(可用符号名称表示); addr11-11位目的地址; addr16-16位目的地址; rel-补码形式表示的8位地址偏移量,值在128127范围内; bit-片内RAM位地址、S
2、FR的位地址(可用符号名称表示); /-位操作数的取反操作前缀; ()-表示 地址单元或寄存器中的内容; -箭头右边的内容送入箭头左边的单元中。,单片机应用技术,寻找操作数或指令的地址的方式。,寻址方式有七种,即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。,若不特别声明,我们后面提到的寻址方式均指源操作数的寻址方式。,1.指令的格式,单片机应用技术,2.寻址方式,单片机应用技术,操作数在寄存器中,指令中直接给出该寄存器名称。具有较高的传送和运算速度。,一、 寄存器寻址,例:MOV A,R0,寻址空间,R0R7,A,B(AB),DPTR,2
3、.寻址方式,单片机应用技术,例:MOV A,R0 ;设(R0)=30H,0工作寄存器组,00H,7FH,30H,30H,80H,FFH,A,E8H,FFFFH,MOV A,R0,0000H,ROM,SFR,RAM,结果:(A)=30H,2.寻址方式,单片机应用技术,操作码后的字节是操作数的地址,操作数本身放在该地址指示的存储单元中。,二、 直接寻址,寻址空间,片内RAM( 128字节),SFR(常采用符号形式),如:MOV A,50H,2.寻址方式,单片机应用技术,例:MOV A,50H ;设(50H)=3AH,50H,7FH,3AH,3AH,80H,FFH,A,FFFFH,MOV A,50H
4、,0000H,ROM,SFR,RAM,结果:(A)=3AH,2.寻址方式,单片机应用技术,寄存器中内容为地址,从该地址取操作数。,三、 寄存器间接寻址,寻址空间,片内RAM,片外RAM,间址寄存器,R0或R1,DPTR,片内RAM,片外RAM(256字节) P2口线,页面方式,MOV,MOVX,2.寻址方式,单片机应用技术,例:MOV A, R0 ;设(R0)=30H,E6H,FFFFH,MOV A, R0,0000H,ROM,结果:(A)=5AH,30H,7FH,5AH,5AH,80H,FFH,A,SFR,RAM,30H,R0,2.寻址方式,单片机应用技术,编码中直接给出操作数。操作码之后的
5、操作数称为立即数。,四、 立即寻址,寻址空间:ROM,立即数单字节、双字节标识:源操作数,2.寻址方式,单片机应用技术,例:MOV A, #50H ;,7FH,50H,80H,FFH,A,FFFFH,MOV A,#50H,0000H,ROM,SFR,RAM,结果:(A)=50H,2.寻址方式,单片机应用技术,以一个基地址加上一个偏移量地址形成操作数地址。,五、 变址寻址,寻址空间:ROM,基址寄存器:,DPTR,PC,偏移量寄存器:A,操作数地址:,2.寻址方式,单片机应用技术,例:MOVC A, A+DPTR ;,7FH,0FH,80H,FFH,A,FFFFH,MOVC A, A+DPTR,
6、0000H,ROM,SFR,RAM,结果:(A)=88H,93H,88H,00H,24H,2400H+0FH= 240FH,240FH,DPL,DPH,88H,2.寻址方式,单片机应用技术,以PC当前值为基准,加上指令中相对偏移量 rel 形成目标地址。,六、 相对寻址,PC,目标地址:,+,rel,PC的当前值:读出该2字节或3字节的跳转指令后,PC指向的下条指令的地址。,rel 取值范围是:128127。(补码),2.寻址方式,单片机应用技术,例:JC rel ;设 rel75H,PSW.7为 “1”,7FH,1000 0000,80H,FFH,PSW,1002H,JC rel,1000H
7、,ROM,SFR,RAM,结果:程序转向1077H单元,1001H,1077H,1000H+02H= 1002H,PC值,字节数,1002H+75H= 1077H,当前PC值,新PC值,2.寻址方式,单片机应用技术,对位地址中内容进行操作。操作的是8位二进制数中的某一位。,七、 位寻址,SFR的寻址位常用符号位地址表示,如:CLR ACC.0 MOV 30H,C,寻址空间,片内RAM中位寻址区,SFR中的可寻址位,2.寻址方式,单片机应用技术,一般不影响PSW状态,传送类指令分成两大类,MOV,一般传送非MOV,特殊传送,如:MOVC、MOVX、PUSH、POP、XCH、XCHD及SWAP。,
8、3.数据传送类指令,单片机应用技术,16位传送,将源操作数data16(通常是地址常数)送入目的操作数DPTR中。,例如:MOV DPTR,#1234H,一、 一般传送指令,结果为:(DPH)=12H,(DPL)=34H。,3.数据传送类指令,单片机应用技术,8位传送,data不能用作目的字节;源字节与目的字节不相同(除direct外);寄存器寻址与寄存器及其间址间不相互传送。,传送关系,目的,源操作数,A,A,Rn,Rn,direct,direct,Ri,Ri,#data,3.数据传送类指令,单片机应用技术,以A为目的,例:若(R1)= 20H,(20H)= 55H执行 MOV A,R1,M
9、OV A,,Rn,direct,Ri,#data,结果:(A)= 55H。,3.数据传送类指令,单片机应用技术,以Rn 为目的,例:若(50H)= 40H执行 MOV R6,50H,MOV Rn,,A,direct,#data,结果:(R6)= 40H。,3.数据传送类指令,单片机应用技术,以direct 为目的,例:若(R1)=50H,(50H)=18H执行MOV 40H,R1,结果:(40H)=18H。,MOV direct,,Rn,direct1,Ri,#data,A,3.数据传送类指令,单片机应用技术,以Ri为目的,例:若(R1)=30H,(A)=20H执行 MOV R1,A,结果:(
10、30H)=20H,MOV Ri,,A,direct,#data,3.数据传送类指令,单片机应用技术,ROM查表,MOVC A,A+PC 以PC的当前值与偏移量之和作为程序存储器地址,将该地址单元的内容传送到A。指令执行后PC的内容不变。,二、 特殊传送指令,MOVC A,A+DPTR 以DPTR与偏移量之和作为程序存储器地址,将该地址单元的内容传送到A。指令执行后DPTR的内容不变。,3.数据传送类指令,单片机应用技术,读写片外RAM,读片外RAMMOVX A,DPTR MOVX A,Ri,写片外RAMMOVX DPTR,A MOVX Ri,A,3.数据传送类指令,单片机应用技术,堆栈操作,操
11、作 PUSH directPOP direct,原则:向地址高端生长,后进先出,SP :指向栈顶(活动端),复位值07H,例:若(SP)=07H,(40H)=88H执行 PUSH 40H,结果:(SP)=08H,(08H)=88H。,3.数据传送类指令,单片机应用技术,数据交换,例:若(R0)=80H,(A)=20H。执行 XCH A,R0,交换类指令, 传送是双向的,字节交换,XCH A,,Rn,direct,Ri,结果:(A)=80H,(R0)=20H。,3.数据传送类指令,单片机应用技术,半字节交换,例:若(R0)30H,(30H)67H, (A)20H。 执行 XCHD A,R0 后,
12、(A)27H,(30H)60H。,XCHD A,RiSWAP A,例:若(A)30H,执行SWAP A后,(A)03H。,3.数据传送类指令,单片机应用技术,程序执行是顺序的,改变程序执行顺序,称作程序转移。,控制程序转移采用转移指令,无条件转移 条件转移 子程序调用与返回,4.控制转移类指令,单片机应用技术,短跳转,一、 无条件转移,AJMP addr11PC先指向AJMP的下一条指令,再把11位地址码传送到PC100,PC1511不变。,当前PC值(下条指令地址)高5位,可确定32个2KB段之一。因此,AJMP转移范围为包含AJMP下条指令在内的2KB区间。,4.控制转移类指令,单片机应用
13、技术,长跳转,LJMP addr16指令第二、三字节地址码分别装入PC的高8位和低8位中。,可转到64KB的ROM空间的任何单元。,例:若“NEWADD”表示转移目标地址1234H。执行 LJMP NEWADD 时,目标地址将装入PC中,程序转向地址 1234H 处运行。,4.控制转移类指令,单片机应用技术,相对转移,SJMP rel第二字节为 rel,(补码),00H7FH为正向转移,80HFFH(1281)反向转移。,rel 是目标地址的标号,由汇编程序自动计算,并填入指令代码中。,例:若“NEWADD”表示地址0123H,PC当前值为0100H。执行 SJMP NEWADD 后,程序转向
14、 0123H 执行(此时re l= 0123H(01002)= 21H)。,4.控制转移类指令,单片机应用技术,散转移,JMP A+DPTR 转移地址由DPTR和A相加形成。例:,MOV DPTR,#TABLEJMP A+DPTR TABLE:AJMP ROUT0; (A)=00H 时AJMP ROUT1; (A)=02H 时AJMP ROUT2; (A)=04H 时AJMP ROUT3; (A)=06H 时,4.控制转移类指令,单片机应用技术,二、 条件转移,累加器判0转移,例:若A原来为00H,则:JNZ L1 ;程序往下执行INC A ;JNZ L2 ;程序转向L2 处执行,JZ rel
15、,A的内容为 0转移,JNZ rel,A的内容不为 0转移,4.控制转移类指令,单片机应用技术,比较不相等转移,对目的字节与源字节比较,不等则转移比较时影响进位标志若目的字节等于源字节,程序将继续往下执行。,CJNE A,direct,rel,CJNE,A,Rn,Ri,,#data,rel,4.控制转移类指令,单片机应用技术,减1不为0转移,每执行一次,循环控制单元减1,并判其是否为 0不为0,则转移到目标地址继续循环;为0,则结束循环,程序往下执行。,DJNZ Rn,rel,DJNZ direct ,rel,4.控制转移类指令,单片机应用技术,例 有一段程序如下:MOV 23H,#0AHCLR A LOOPX:ADD A,23HDJNZ 23H,LOOPXSJMP $,结果:(A)=10+9+8+7+6+5+4+3+2+1=37H,