按关键词阅读: 大学 第三 湘潭 课件 单片机
AJMP的下一条指令第一个字节与跳转的入口地址必须在同一区内,eg:KWR:AJMPaddr1 。
26、1,设 addr11=001,0000,0000(a100,设 KWR 处地址为:1030H,设 KWR 处地址为: 3030H,0000H07FFH 0区,0800H0FFFH 1区,1000H17FFH 2区,3.3.5控制转移指令,一、无条件转移指令,2、相对短跳转指令,SJMPrel;PC+2+relPCrel:-128127,rel:-128127 , 负数表示向后转移 , 正数表示向前转移,编程时 , rel往往用一个标号来代替 , 由汇编程序在汇编过程中自动计算偏移字节数 , 并填入指令代码中 。
当手工汇编时 , rel一般用补码表示,eg:KRD:SJMPPKRD,标号PKRD 的地址值为0123H,则 。
27、:0123H=0100+2+relrel=21H,设KRD的地址为0100H,设 KRD的地址为0100H,标号PKRD 值为00F2H,则:00F2H=0100+2+relrel=0F0H,3.3.5控制转移指令,3、长跳转指令,LJMP addr16;addr150PC,无条件跳转到指定地址 , 地址空间为64KB程序存贮器地址,4、基寄存器加变址寄存器间接转移指令,JMP A+DPTR;(A)+(DPTR) PC,eg: P96 例38,PM:MOVR1 , A,RLA,ADDA , R1,MOVDPTR , #PMTB,JPA+DPTR,PMTB:LJMPPM0,LJMPPM1,LJMPPM2,LJM 。
28、PPM3,LJMPPM4,LJMPPM5,LJMPPM6,3.3.5控制转移指令,1、测试条件符合转移指令,JZ rel ;(A)=0 , (PC)+2+rel (PC) , (A) 0 , (PC)+2 (PC,JNZ rel ;(A)0 , (PC)+2+rel (PC) , (A) = 0 , (PC)+2 (PC,JC rel ;CY=1 , (PC)+2+rel (PC) , CY =0 , (PC)+2 (PC,JNC rel ;CY=0 , (PC)+2+rel (PC) , CY =1 , (PC)+2 (PC,JBBit , rel ;(Bit)=1 , (PC)+3+rel (PC) ,(Bit)=0 , (PC)+3 (PC,JN 。
29、BBit , rel ; (Bit)=0 , (PC)+3+rel (PC) (Bit)=1 , (PC)+3 (PC,JBCBit , rel ; (Bit)=1 , (PC)+3+rel (PC) , 且清(Bit)=0 (Bit)=0 , (PC)+3 (PC,2、比较不相等转移指令,a、CJNEA , direct , rel,A)=(direct) , (PC)+3(PC) , 0CY,A)(direct) , (PC)+3+rel(PC) , 0CY,A)(direct) , (PC)+3+rel(PC) , 1CY,二、条件转移指令,b、CJNEA , #data , rel,A)=data , (PC)+3(PC) , 0CY,A) data, (PC 。
30、)+3+rel(PC) , 0CY,A) data, (PC)+3+rel(PC) , 1CY,c、CJNERn , #data , rel,Rn)=data , (PC)+3 (PC) , 0CY,Rn) data, (PC)+3+rel(PC) , 0CY,Rn) data, (PC)+3+rel(PC) , 1CY,d、CJNERi , #data , rel,(Ri))=data , (PC)+3(PC) , 0CY,(Ri) ) data, (PC)+3+rel (PC) , 0 CY,(Ri) ) data, (PC)+3+rel (PC) , 1 CY,二、条件转移指令,执行下面程序后将根据A的内容大于60H、等于60H、小于60H三 。
31、种情况作不同处理,CJNEA , #60H , NEQ;
(A)不等于60H转移,EQ: ;
(A)等于60H处理程序,NEQ: JCLOW;
(A) 60H 转移,A) 60H 处理程序,LOW:;
(A) 60H 处理程序,二、条件转移指令,3、减1不为0转移指令,DJNZRn , rel ;(Rn)-1(Rn) (Rn)=0 , (PC)+2 (PC) (Rn)0 , (PC)+2+rel (PC,DJNZdirect , rel ;(direct)-1(direct) (direct)=0 , (PC)+3(PC) (direct)0 , (PC)+3+rel (PC,子程序:具有一定功能的公用程序段 。
在子程序的末尾一般是一 。
32、条返回指令(RET,当主程序调用子程序时 把下一条指令地址(SP) , (SP+2) (SP,子程序起始地址 PC,子程序执行返回时:把调用子程序处下一条指令地址从堆栈中取出PC , (SP)-2(SP,二、条件转移指令,三、调用和返回指令,START:SETBP1.1;1P1.1,DL: MOV30H , # 03H;03H 30H , 置初值,DL0: MOV31H , # 0F0H;0F0H 31H , 置初值,DL1: DJNZ31H , DL1;(31H)-1 31H , (31H)不为0 重复执行,DJNZ30H , DL0;(30H)-1 30H , (30H)不为0 转DL0,CPLP1.1;P1.1求反,AJMPD 。
33、L;转DL,一般而言 , 可以多次调用子程序,子程序调用可以嵌套,三、调用和返回指令,压栈,1、短调用指令,ACALL addr11,PC)+2 PC,(SP)+1 SP , (PC70) (SP)低,(SP)+1 SP , (PC158) (SP)高,PC15PC14PC13PC12PC11a10a9a0 PC(转向执行子程序,eg: (SP)=60H , 标号MA值为0123H 。
SUB起始地址0345H,MA:ACALL SUB,PC)+2,三、调用和返回指令,2、长调用指令,压栈,LCALL addr16; addr16 64KB地址区,PC)+3 PC,(SP)+1 SP , (PC70) (SP)低,( 。
34、SP)+1 SP , (PC158) (SP)高,addr16 PC,eg: (SP)=60H , START:标号地址 0100H 。
DIR:标号地址 8100H,START:LCALL DIR,三、调用和返回指令,3、返回指令,从子程序返回,RET,(SP)-1 SP, (SP) PC70,(SP)-1 SP,SP) PC158,即把堆栈顶的内容送到PC寄存器中,eg: (SP)=62H , (61H)=30H , (62H)=07H,RET,三、调用和返回指令,从中断返回,RETI,(SP)-1 SP , (SP) PC70,(SP)-1 SP,SP) PC158,中断返回指令把栈顶的内容送到PC寄存器中 , 同 。
35、时释放中断逻辑使之能接受同级的另一中断请求 。
CPU执行RETI指令后至少要再执行一条指令 , 才能响应新的中断请求,四、空操作指令,NOP;除(PC)+1 (PC)外无任何操作,一般用于延时,三、调用和返回指令,指令助记符注释,MOVMove,MOVCMove Code,MOVXMove External RAM,PUSH,POP,XCHExchange,XCHDExchange low-order Digit,ACALLAbsolute Subroutine Call,LCALLLong Subroutine Call,RETReturn from Subroutine,RETIReturn f 。
来源:(未知)
【学习资料】网址:/a/2021/0121/0021119584.html
标题:湘潭|湘潭大学单片机课件第三章( 四 )