分享
分销 收藏 举报 申诉 / 74

类型MCS单片机指令系统.ppt

  • 上传人:天****
  • 文档编号:14595688
  • 上传时间:2026-10-18
  • 格式:PPT
  • 页数:74
  • 大小:2.67MB
  • 下载积分:10 金币
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    MCS 单片机 指令系统
    资源描述:
    ,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Beijing Institute of Petro-chemical Technology,*,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MCS单片机指令系统,MCS单片机指令系统MCS单片机指令系统 2.4 MCS-51单片机指令系统2.4.1 指令格式2.4.2 指令寻址方式2.4.3 MCS-51指令系统Beijing Institute of Petro-chemical Technology,2.4 MCS-51单片机指令系统,2.4.1,指令格式,2.4.2,指令寻址方式,2.4.3,MCS-51指令系统,Beijing Institute of Petro-chemical Technology,汇编语言指令格式,标号:操作码 操作数1,操作数2;注释,换行表示一条指令结束。,例:,LOOP:MOV A,#40H;,取参数,1.,标号:,指令的符号地址,2.,操作码:,指明指令功能。,3.,操作数:,指令操作对象,数据、地址、寄存器名及约定符号。,4.,注释行:,说明指令在程序中的作用。,操作码和操作数,是指令主体。,MOV,_move传送,XCH,_exchange交换,ANL,_and logic与逻辑运算,XRL,_exclusive or异或运算,MUL,_Multiply乘法,RR,_rotate right右循环,SJMP,_short jump短跳转,RET,_return 子程序返回,2.4.1 指令格式,Beijing Institute of Petro-chemical Technology,二.机器语言指令格式,操作码 操作数1 操作数2,有单字节、双字节和三字节指令。,汇编语言指令中操作码和操作数是指令主体,称为指令可执行部分,指令表中可查出对应指令代码。,举例:,汇编语言:,机器语言:,MOV A,R0E8H,MOV R6,#32H7E 32H,MOV 40H,#100H75 40 64H,2.4.1 指令格式,Beijing Institute of Petro-chemical Technology,操作码,7 0,数据或寻址方式,7 0,双字节指令:,单字节指令:,操作码,7 0,三字节指令:,操作码,7 0,数据或寻址方式,7 0,数据或寻址方式,7 0,指令按字节长度可以分为三种:,例如:,MOV A,R0,例如:,MOV A,30H,例如:,MOV DPTR,#2010H,2.4.1 指令格式,Beijing Institute of Petro-chemical Technology,我的信在他那!,找信,去!,注:找信是寻找,信的“地址”!,你能说出第二封信的“地址”吗?,2.4.2 指令寻址方式,Beijing Institute of Petro-chemical Technology,2.4.2 指令寻址方式,2.4.2.1 操作数类型,位,(b)位寻址区中的一位二进制数据,字节,(B)8位二进制数据,字,(W)16位双字节数据,2.4.2.4,寻址方式,一.,立即寻址方式,指令中给出实际操作数据(立即数),一般用于为寄存器或存储器赋常数初值。,举例:,8位立即数:MOV A,#40H ;A40H,16位立即数:MOV DPTR,#2100H;DPTR2100H,Beijing Institute of Petro-chemical Technology,立即数寻址方式的指令中,所需操作数直接包含在指令代码中,这种操作数称为立即数。立即数可以是8位,也可以是16位。,例:MOV A,#20H,它表示将8位立即数20H送入类加器A中,A,操作码,20H,一条指令,.,.,Beijing Institute of Petro-chemical Technology,例:MOV DPTR,#20A0H,它表示将16位立即数20A0H送入DPTR中,由于在指令执行过程中,立即数作为指令的一部分直接取出,它不需另外占用总线周期,因此这种寻址方式执行速度快。,注意:立即数只能作为源操作数,而不能作为目的操作数。,DPL,DPH,DPTR,操作码,20H,一条指令,.,.,A0H,Beijing Institute of Petro-chemical Technology,二.直接寻址方式,指令操作数是存储器单元地址,数据在存储器单元中。,MOV A,40H;A(40H),直接寻址方式对数据操作时,地址是固定值,而地址所指定的单元内容为变量形式。,41H,78H,40H,56H,56H,例:,设存储器两个单元的内容如图所示,,执行指令 MOV A,40H后 A=?,思考题:,直接寻址方式指令和立即寻址方式指令的形式有什么不同?,Beijing Institute of Petro-chemical Technology,在直接寻址方式的指令中,操作数的有效地址direct,即:操作数在内部RAM或SFR中,以direct表示。,指令:,操作码,操作数地址,direct,操作数,.,.,内存,例如:MOV A,35H,Beijing Institute of Petro-chemical Technology,令操作数为寄存器名,数据在寄存器中。,例:,MOV A,R0;AR0设指令执行前 A=20H,R0=40H,执行指令后,A=?,R0=?,40H,0100 0000,A,0010 0000,R0,0100 0000,三.寄存器寻址方式,40H,Beijing Institute of Petro-chemical Technology,指令的操作数为寄存器名,寄存器中为数据地址。,存放地址的寄存器称为间址寄存器或数据指针。,例:,MOV A,R0;A(R0),设指令执行前 A=20H,R0=40H,地址为40H存储器单元内容如图所示,。执行指令后,,A=?,R0=?,(40H)=?,41H,67H,40H,34H,34H,40H,34H,R0,四.寄存器间接寻址方式,Beijing Institute of Petro-chemical Technology,操作数地址放在寄存器Ri(或DPTR)中,以 Ri(只有R0或 R1)/DPTR表示,其中是寄存器间址区别于寄存器寻址的标志。,操作码,操作数,Ri,例如:,MOV A,R0;(寄存器寻址),MOV 30H,#05H,MOV R0,#30H,MOV A,R0。(寄存器间址)。,direct,操作数,.,.,内存,Beijing Institute of Petro-chemical Technology,立即数寻址,MOV P1,R0,目的地,寄存器,操作数,3AH,内部RAM,3AH,65H,3AH,R0,R1,DPTR,寄存器间接寻址寄存器,目的地,2号,信在2号箱子里,1号,你能说出1号箱子和2号箱子分别对应内存中哪一部分吗?,Beijing Institute of Petro-chemical Technology,数据在存储器中,指令给出的寄存器中为数据的基地址和偏移量。数据地址=基地址+偏移量。,例:,MOVC A,A+DPTR;A(A+DPTR),设指令执行前 A=09H,DPTR=2000H,存储器单元内容如图所示。执行指令后,A=?DPTR=?,12H,2000H,2008H,89H,2009H,12H,五.变址间接寻址方式,Beijing Institute of Petro-chemical Technology,变址寻址,操作数地址放在偏移基地址的ROM单元中,仅二条。,MOVC A,A+PC,MOVC A,A+DPTR,在执行变址寻址指令时,先把基地址(在PC或DPTR内)和地址偏移量(累加器A中)相加,在从相加所得的地址中取数送到累加器A,操作码,基址,位移量,DPTR,(PC),A,direct,操作数,.,.,ROM,Beijing Institute of Petro-chemical Technology,MOVC A,A+DPTR,目的地,寄存器,操作数,内部RAM,3AH,65H,3AH,基址,寄存器,12H,变址,寄存器,34H,内部RAM,46H,65H,A,DPTR,PC,46H,Beijing Institute of Petro-chemical Technology,指令给出位地址。一位数据在存储器位寻址区。,例:,MOV C,40H;Cy(位地址40H),设指令执行前 Cy=1,位地址40H存储器单元如图,执行指令后,Cy=?,0,六.位寻址方式,28H,29H,位寻址区,Beijing Institute of Petro-chemical Technology,20H,27H,21H,28H,21H,20H,1,0 0 0 0 0 0 0 0,想一想:,如果想使27H单元的,第3位,置1,该怎么办呢?,六.位寻址方式,Beijing Institute of Petro-chemical Technology,单元地址,2FH,2EH,2DH,2CH,2BH,2AH,29H,28H,26H,25H,24H,23H,22H,21H,20H,7F,77,6F,67,5F,57,4F,47,37,2F,27,1F,17,0F,07,MSB,位地址,LSB,7E,76,6E,66,5E,56,4E,46,36,2E,26,1E,16,0E,06,7D,75,6D,65,5D,55,4D,45,35,2D,25,1D,15,0D,05,7C,74,6C,64,5C,54,4C,44,34,2C,24,1C,14,0C,04,7B,73,6B,63,5B,53,4B,43,33,2B,23,1B,13,0B,03,7A,72,6A,62,5A,52,4A,42,32,2A,22,1A,12,0A,02,79,71,69,61,59,51,49,41,31,29,21,19,11,09,01,78,70,68,60,58,50,48,40,30,28,20,18,10,08,00,位寻址地址表,例:,SETB 3DH,3D,3C,3B,3F,3E,3A,39,38,27H,Beijing Institute of Petro-chemical Technology,SETB 3DH,20H,27H,21H,28H,21H,20H,0 0 0 0 0 0 0,1,0,六.位寻址方式,Beijing Institute of Petro-chemical Technology,目的地,XXH,操作数,SJMP 54H,PC,+,54H,PC,2002H,2002H =2056H,PC,2056H,七、相对寻址,Beijing Institute of Petro-chemical Technology,2.4.3,MCS-51指令系统分析,指令功能分类:,数据传送、数据操作、布尔处理、程序控制。,2.4.3.1,数据传送指令,实现寄存器、存储器之间的数据传送。,一.,内部传送指令,:片内数据存储器数据传送。,二.,外部传送指令,:,片外数据存储器数据传送。,三.,交换指令,:片内数据存储器数据传送。,四.,堆栈操作指令,:片内数据存储器数据传送。,五.,查表指令,:程序存储器数据传送。,Beijing Institute of Petro-chemical Technology,一、,内部传送指令,:实现片内数据存储器中数据传送。,指令格式,:,MOV,目的,操作数,,源,操作数,寻址方式,:立即寻址、直接寻址、寄存器寻址、寄存器间址。,习题1:,找出配对指令,实现反向传送。,指令机器码:,11101rrr,E8EF,11100101 n,E5,n,1110011i,E6、E7,01110100 d,74,d,10101rrr n,1010011i n,85 n1 n2,90 d1 d2,MOV A,Rn ;ARn,Rn=R,0,R,7,MOV A,n ;A(n),MOV A,Ri;A(Ri),Ri=R,0,、R,1,MOV A,#d ;Ad,MOV Rn,n ;Rn(n)MOV Ri,n ;(Ri)(n)MOV n1,n2;(n1)(n2),MOV DPTR,#d1d2;DPTRd1d2,Beijing Institute of Petro-chemical Technology,例:,顺序执行下列指令序列,求每一步执行结果,。,MOV A,#30H,MOV 4FH,A,MOV R0,#20H,MOV R0,4FH,MOV 21H,20H,习题2,:,用两种寻址方式实现,将片内RAM 60H单元的数据传送给累加器A。,解:,MOV A,#60H,MOV R0,#60H MOV A,R0,;A=30H,;(4FH)=30H,;R0=20H,;(20H)=30H,;(21H)=30H,MOV R0,60H MOV A,R0,解:,MOV A,60H,Beijing Institute of Petro-chemical Technology,说明:,只有指令表中的指令才有对应指令代码,计算机才能执行。编程时,不能随意创造发明指令。,1.,一条指令中不能同时出现两个工作寄存器:,非法,指令:MOV R1,R2MOV R2,R0,2.,间址寄存器只能使用 R0、R1。,非法,指令:MOV A,R2,3.,SFR区只能直接寻址,不能用寄存器间接寻址。,非法,指令:MOV R0,#80HMOV A,R0,4.,指令表:,B,:指令字节数,,M,:机器周期数,Beijing Institute of Petro-chemical Technology,二、外部传送指令,实现片外数据存储器和A累加器之间的数据传送。,指令格式:,MOVX,目的,操作数,,源,操作数,寻址方式:片外数据存储器用寄存器间址方式。,1.DPTR作16位数据指针,寻址64KB片外RAM空间,MOVX A,DPTR,;A(DPTR),MOVX DPTR,A,;(DPTR)A,2.Ri作8位数据指针,寻址256B片外RAM空间,MOVXA,Ri,;A(Ri),MOVXRi,A,;(Ri)A,Beijing Institute of Petro-chemical Technology,例:,实现片外数据存储器数据传送(2000H)(2100H)。,MOV DPTR,#2000H,MOVX A,DPTR,MOV DPTR,#2100H,MOVX DPTR,A,习题,3,:,将片外RAM 0000H单元的数据传送到片内RAM的 60H单元,。,;DPTR=2000H,;A=X,;DPTR=2100H,;(2100H)=X,片外数据存储器不能直接寻址。下列为,非法,指令:,MOVX A,2000H,MOVX 2100H,2000H,思考题:,为什么对DPTR的数据传送使用内部传送指令?,Beijing Institute of Petro-chemical Technology,三、交换指令,实现片内RAM区的数据双向传送。,1.字节交换指令,XCH A,Rn,;A Rn,XCH A,Ri,;A(Ri),XCH A,n,;A(n),习题4:,将片内RAM60H单元与61H单元的数据交换。,例:,设A=29H,执行指令 XCH A,2AH后,A=?(2AH)=?,38H,29H,XCH 60H,61H 对吗?,29 H,Beijing Institute of Petro-chemical Technology,2.半字节交换指令,XCHD A,Ri,;A,03,(Ri),03,SWAP A,;A,47,A,03,例:,将片内RAM 2AH和2BH单元中的ASCII码转换成压缩式BCD码存入20H单元。,A,00H,08H,80H,85H,MOV A,#0,MOV R0,#2AH,MOV R1,#2BH,XCHD A,R0,SWAP A,XCHD A,R1,XCH A,20H,00H,00H,85H,R1,R0,习题:,交换片内RAM 40H单元和 41H单元的低半字节。,Beijing Institute of Petro-chemical Technology,(四)堆栈操作指令,入栈指令:PUSH n ;SPSP+1,(SP)(n)出栈指令:POP n ;(n)(SP),SPSP-1,例:,设,A=02,B=56H,执行下列指令后,SP=?,A=?,B=?,SP,SP,02,SP,56H,02,56H,02H,SP,SP,56H,02,SP,56H,02,56H,SP,02,02H,A,00H,02H,00H,02H,02H,SBR:MOV SP,#30H;设栈底,PUSH A,PUSH B,MOV A,#0,MOV B,#01,POP B,POP A,Beijing Institute of Petro-chemical Technology,(五)查表指令,实现从程序存储器读取数据到A累加器,,,只能使用变址间接寻址方式,。,多用于查常数表程序,可直接求取常数表中的函数值。,1,DPTR,为基址寄存器,MOVCA,A+DPTR,;A(A+DPTR),查表范围为 64KB 程序存储器任意空间,称为远程查表指令。,2,PC,为基址寄存器,MOVCA,A+PC,;A(A+PC),常数表只能在查表指令后256B范围内。,Beijing Institute of Petro-chemical Technology,例:查表法求Y=X,2,。设X(0X15)在片内RAM的20H单元中,要求将查表求Y,存入片内RAM21H单元。,1),ORG 1000H,SQU:MOV DPTR,#TAB;确定表首地址(基地址),MOV A,20H;取X(偏移量,MOVC A,A+DPTR,;查表求Y=X,2,MOV 21H,A;保存Y,RET;子程序结束,;其它程序段,ORG 3000H;常数表格首地址,TAB:DB 00,01,04,09,225;平方表,Beijing Institute of Petro-chemical Technology,2),指令地址,源程序,ORG 1000H ;程序起始地址,1000H SQU:MOV A,20H;取X,1002H ADD A,#3 ;修正偏移量,1004H,MOVC A,A+PC,;查表求Y=X,2,1005H MOV 21H,A;存结果,1007H RET ;子程序结束,1008H TAB:DB 00,01,04;平方表,100BH DB 09,225,思考题:,当0X255时,如何用查表法编程求Y=X,2,。,例:,查表法求Y=X,2,。设X(0X15)在片内RAM的20H单元中,要求将查表求Y,存入片内RAM21H单元。,Beijing Institute of Petro-chemical Technology,习题:,找出指令错误并改正:,1,MOV A,#1000H;A1000H,2,MOVX A,1000H;A(1000H)片外,RAM,3,MOVC A,1000H;A(1000H)片外,ROM,4,MOVX 60H,A;片外RAM(60H)A,5,MOV R0,60H;片内RAM:(61H)(60H),MOV 61H,R0,6.,XCH R1,R2;R1R2,7.,MOVX DPTR,#2000H;DPTR2000H,8.,MOVX 60H,DPTR;,片内RAM片外RAM,Beijing Institute of Petro-chemical Technology,2.4.3.2算术运算指令,与数据传送指令不同,多数算术运算指令会影响标志位的状态,即CPU执行算术运算指令后,根据数据操作情况自动设置标志位的状态。,状态标志,MCS-51 的程序状态字寄存器,PSW,为标志寄存器。其格式如下:,Beijing Institute of Petro-chemical Technology,1,标志位,(自动设置状态),1),Cy,:进位标志位,保存运算后最高位的进位/借位状态,当有进位/借位,Cy=1,否则Cy=0。,2),AC,:辅助进位标志位,保存低半字节的进位/借位状态,当D,3,产生进位/借位,AC=1,否则AC=0。用于十进制调整。,3),OV,:溢出标志位,OV=Cy,7,Cy,6,,补码运算产生溢出OV=1,否则OV=0。,4),P,:奇偶标志位,反映累加器A中数据的奇偶性。当1的个数为奇数,P=1,否则P=0。,Beijing Institute of Petro-chemical Technology,2用户选择位,(编程设置状态),1),F0,:用户自定义标志位。,2),RS1、RS0,:工作寄存器区选择位。复位时,PSW=00H,RS1 RS0 工作寄存器,0 0 0区,0 1 1区,1 0 2区,1 1 3区,例:,复位后,设置使用工作寄存器2区,其余标志位不变。,解:,MOV PSW,#,18H,Beijing Institute of Petro-chemical Technology,算术运算指令,完成片内 RAM 和 A 中数据的加减乘除运算,。,一,加减指令,1.,加法指令,0011 1011,+,0011 1011,0111 0110,76H 0 0 1 1,1)不带进位加法:,ADD,A,,,源,操作数,ADD A,R2 ;AA+R2,影响Cy、OV、AC、P,例1:,A=3BH,PSW=0,执行指令 ADD A,#3BH,求:A=,Cy=,OV=,AC=,P=,,PSW=?,01000001=41H,Beijing Institute of Petro-chemical Technology,1001 1010,1110 0011,+,0,1,0111 1101,2)带进位加法:,ADDC A,,,源,操作数,ADDC A,R2 ;AA+R2+Cy,影响Cy、OV、AC、P,7DH 1 1 0 0,例2:,A=9AH,R2=E3H,PSW=0,执行指令,ADDC A,R2,后求:,A=,Cy=,OV=,AC=,P=,,PSW=?,10000100=84H,Beijing Institute of Petro-chemical Technology,带进位加法指令ADDC用于多字节运算,例:,设双字节数 X 存在片内RAM 41H、40H单元,Y存在42H、43H单元,编程求 Z=X+Y,并存入片内RAM单元44H、45H、46H。,ADDS:MOV A,40H,ADD A,42H,MOV 44H,A,MOV A,41H,ADDC A,43H,MOV 45H,A,MOV A,#0,ADDC A,#0,MOV 46H,A,RET,;,取被加数低字节,;加上加数低字节,;保存和的低字节,;取被加数高字节,;加上加数高字节,;保存和的高字节,;求高字节进位,;子程序结束,;低字节相加,;高字节相加,;计算高字节进位,;子程序结束,Beijing Institute of Petro-chemical Technology,十进制加法指令,:,ADD A,源操作数,DAA,带进位十进制加法指令,:,ADDC A,源操作数,DA A,作业,:BCD码加法编程。,设X、Y为4位压缩BCD码,求 Z=X+Y。,BCD调整指令:,DAA;对 A 中加法结果进行调整,Beijing Institute of Petro-chemical Technology,2减法指令,SUBB A,,源,操作数;带借位减法指令,SUBB A,R2;AA-R2-Cy,,;影响Cy、OV、AC、P,00 0 0 0 0,习题:,编程求双字节减法,。设X、Y存在片内 RAM 60H起始单元,计算 Z=X-Y。,例:,A=5AH,R2=5AH,Cy=0,执行下列指令,SUBB A,R2,求:A=,Cy=,OV=,P=,AC=?,Beijing Institute of Petro-chemical Technology,3.,增量、减量指令,INC,单操作数,如:INC R2;R2R2+1,DEC,单操作数,如:DEC R2;R2R2-1,INC,DPTR;DPTRDPTR+1,不影响标志位状态,。,注意:,没有指令 DEC DPTR,可用指令 DEC DPL 代替,Beijing Institute of Petro-chemical Technology,4.乘除指令,MUL AB,;BAAB,Cy0,,;当积高字节B=0,OV0;B0,则OV1,例:,A=96(60H),B=192(C0H),执行指令 MUL AB 后,,求:A=,B=,Cy=,OV=,P=?,解:,96 192=18432(4800H),00H 48H 0 1 0,12H 0CH 0 0 0,例:,A=156(F6H),B=13(0DH),执行指令 DIV AB 后,求:A=,B=,Cy=,OV=,P=?,解:,156 13=18(12H),余数=12(0CH)。,思考题:,如何实现多字节数据的乘除运算。,DIV AB,;AB,A商,B余数,Cy0,,;当除数B=0,OV1;B0,则OV0,Beijing Institute of Petro-chemical Technology,2.4.3.3,逻辑运算指令,一.单操作数指令(A累加器为操作数),1.,A清0指令:,CLR A,;A0,2.,A取反指令:,CPL A,;A/A,3.,循环移位指令:,1),8位循环指令:,RL A,;A循环左移一位,RR A,;A循环右移一位,2),9位循环指令:,RLC A,;带Cy循环左移一位,RRC A,;带Cy循环右移一位,Beijing Institute of Petro-chemical Technology,A.0,A.7,A.0,A.7,A.0,A.7,A.0,A.7,CY,CY,RL A,RR A,RLC A,RRC A,注意:,执行带进位的循环移位指令之前,必须给CY置位或清零。,Beijing Institute of Petro-chemical Technology,例:,设,A=11000101,Cy=0,分别执行下列单条指令:,CPL A,求:A=,Cy=,RL A,RLC A,00111010 0,10001011 0,10001010 1,用,9位循环指令实现多字节移位,例:,编程将寄存器 R6R5 中的双字节数X左移一位。,CLR C,MOV A,R5,RLC A,MOV R5,A,MOV A,R6,RLC A,MOV R6,A,0,Cy,R,6,R,5,Cy,;Cy=0,设 R6=55H,R5=AAH,;R6=01010101,R5=10101010,Cy=0,;R6=01010101,R5=01010100,Cy=1,;R6=10101011,R5=01010100,Cy=0,思考题:,如何将寄存器R6R5中的双字节数X右移一位。,Beijing Institute of Petro-chemical Technology,(二)双操作数逻辑运算指令,(对位逻辑运算):,ANL、ORL、XRL,习题1:,如何将累加器A中的数据高4位清0,低位不变?,习题2:,如何将寄存器R2中的数据奇数位取反,偶数位不变?,例,A=01B,表示随机状态,为1或0,执行下述一组指令执行后A的值如何?XRL A,#0C0H;将累加器A的内容D,7,、D,6,取反,ORL A,#03H;将累加器A的内容D,1,、D,0,置1ANL A,#0E7H;将累加器A的内容D,4,、D,3,清0,解:,执行上述指令后,A=100011B。,Beijing Institute of Petro-chemical Technology,2.4.3.4,布尔变量操作指令,对片内RAM中位寻址区操作。位累加器Cy和位地址b。,一,位传送,MOV,C,b ;Cy(b),MOV,b,C ;(b)Cy,例:将位地址20H的一位数传送到位地址30H中:,MOV C,20H MOV 30H,C,二位清0、置1、取反:,CLR,、,SETB,、,CPL,:,CLR C;Cy0,,CLR 40H;(位地址40H)0,Beijing Institute of Petro-chemical Technology,三逻辑运算:,ANL、ORL,:ANL C,40H ;CC(40H)ANL C,/40H ;CC/(40H),例:设 Cy=1,(位地址40H)=1,执行指令,ANL C,/40H 后,,Cy=?,(位地址40H)=?,位地址表示法,:位地址,40H,,位寄存器,F0,,字节加位,ACC.0,0,习题,:设累加器A中数据为 29H,Cy=0,执行指令 ORL C,0E3H 后,Cy=?,1,Beijing Institute of Petro-chemical Technology,2.4.3.5,转移指令,按转移条件分类:,1),无条件转移,:,执行无条件转移指令,程序无条件转移到指定处。,2),条件转移,:,指令中给出转移条件,执行指令时,先测试条件,若满足条件,则程序发生转移,否则,仍顺序执行程序。,转移指令通过改写PC的当前值,从而改变CPU执行程序的顺序,使程序发生跳转。,Beijing Institute of Petro-chemical Technology,按转移方式分类:,1,),绝对转移,:指令给出转移目的的绝对地址 nn,执行指令后,PCnn。,2),相对转移,:指令给出转移目的与转移指令的相对偏移量,rel,,执行指令后,PCPC+,rel,。,例:,地址源程序,1000H LJMP 2000H,1003H ,2000H ;转移目的指令,例:,地址 源程序,1000H SJMP 02,1004H ;转移目的指令,Beijing Institute of Petro-chemical Technology,一.无条件转移指令,1.长转移指令:,LJMP addr16,;PC,addr16,指令机器码:,02 addr,H,addr,L,指令转移范围:64KB,2.绝对转移指令:,AJMP,addr11,;PCPC+2;PC,100,pn,100,;PC,1511,不变,指令机器码:,addr,108,00001,,,addr,70,指令转移范围:2KB,转移时要求转移前后保持 PC,1511,不变。,Beijing Institute of Petro-chemical Technology,1)长转移指令:LJMP AAAAH ;AAAAH,PC,PC=0000H,PC=AAAAH,0000H,0001H,AAA9H,AAAAH,0002H,假设执行该指令前,PC的值为0000H。,注意:,该指令可以转移到64 KB程序存储器中的任意位置。,Beijing Institute of Petro-chemical Technology,PC高5位,(保持不变),PC低11位,A,10,A,9,A,8,0,0,0,0,1,A,7,A,6,A,5,A,4,A,3,A,2,A,1,A,0,操作码(第一字节),操作数(第二字节),11位转移地址的形成示意图,程序计数器PC,AJMP,addr11;PC+2,PC,,addr11,PC.10PC.0,2)绝对转移指令,Beijing Institute of Petro-chemical Technology,相对偏移量,rel,的计算式,:,rel,=目的指令地址-(转移指令地址+指令字节数)=目的地址-PC当前值,3.短转移指令:,SJMP,rel ;PCPC+2,PCPC+rel,指令机器码:,80H,,rel,相对偏移量 rel为8位补码。,指令转移范围:前128后127字节,编程时,用标号代替转移目的地址,转移指令的操作数交给汇编程序计算。LJMP NEXT,AJMP NEXT,SJMP NEXT,NEXT:,Beijing Institute of Petro-chemical Technology,PC,2002H,2003H,0000H,0001H,2004H,2005H,2006H,PC,PC,PC,2006H,2003H,PC,0002H,PC,例:,SJMP 03H,03H,03H就是当前PC值,与目的PC值,相对差,PC,3.短转移指令,Beijing Institute of Petro-chemical Technology,例1:,计算转移指令的相对偏移量 rel,并判断是否超出转移范围。,例2:,求原地踏步指令的指令代码,HERE:SJMP HERE,求出指令代码为:,80 FE H,相对偏移量=2150H-(2130H+2)=001EH,只取低8位:rel=1EH 指令机器码:,80 1E H,习题:,计算程序中转移指令的相对偏移量 rel,并判断是否超出转移范围。地址 源程序2130H LOOP:21B0H SJMP LOOP,指令地址源程序2130H SJMP NEXT,2150HNEXT:MOV A,R2,Beijing Institute of Petro-chemical Technology,4,间接转移指令(多分支转移指令),JMP A+DPTR.,;PCA+DPTR,指令机器码,73H,,指令转移范围64KB。,KEY:MOV DPTR,#KTAB,MOV A,40H,ADD A,A,JMP A+DPTR,KTAB:AJMP FUNC0,AJMP FUNC1,FUNC0:,FUNC1:,应用:,处理功能键。,要求不同功能键执行不同程序段。设每个功能键对应一个键值 X(0XFH)。,设X已存入片内RAM的40H单元中。,若X=0,则执行程序段FUNC0,若X=1,则执行程序段FUNC1,。,Beijing Institute of Petro-chemical Technology,二条件转移指令,1.判零转移指令,JZ e,;PCPC+2,,;若A=00H,PCPC+e(,转移),;若A00H,PC不变(不转移),条件转移指令形成程序的分支,赋予计算机判断决策能力转移条件:1)标志位的状态 2)位地址中的状态,JNZ e,;PCPC+2,若A00H,,;PCPC+e(转移),;若A=00H,PC不变(不转移),2.判Cy转移指令,JC e,;Cy=1则转移,Cy=0不转移,JNC e,;Cy=0则转移,Cy=1不转移,Beijing Institute of Petro-chemical Technology,3.判位转移指令,JB b,e,;(b)=1转移,否则不转移,JNB b,e,;(b)=0转移,否则不转移,4.判位清0转移指令:,JBC b,e,;(b)=1转移,且(b)0,否则不转移,5.比较不相等转移指令:,CJNE,操作数1,操作数2,e,CJNE A,n,e,;PCPC+3,;若A(n),则PCPC+e ;且当A(n),Cy=0,当A(n),Cy=1;若A=(n),PC不变,且Cy=0。,相当于两个操作数相减,仅影响标志状态,不保存结果,Beijing Institute of Petro-chemical Technology,6,循环转移指令:,DJNZ 操作数,e,DJNZ R2,e,;PCPC+2,R2R2-1 ;若R20,PCPC+e,,;若R2=0,PC不变。,例:用于循环结构程序。设要求程序循环执行100次,MOV R2,#100;设循环计数器初值,LOOP:;多次循环程序段,DJNZ R2,LOOP;循环控制 ;循环结束,习题:,当循环计数器初值为0,循环次数有
    展开阅读全文

    开通VIP折扣优惠下载文档

    提示  咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。

    咨信网小贴示:
    1、浏览或下载可查看了解,请点击【咨信网告知】。
    2、下载文件中如有侵权或不适当内容,将立即纠正。
    3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
    4、开具发票登录电脑端申请,请点击【索取发票】。

    咨信网客服组:【微信客服】

    自信AI创作助手
    关于本文
    本文标题:MCS单片机指令系统.ppt
    链接地址:https://www.zixin.com.cn/doc/14595688.html

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork