单片机3PPT学习教案_第1页
单片机3PPT学习教案_第2页
单片机3PPT学习教案_第3页
单片机3PPT学习教案_第4页
单片机3PPT学习教案_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1单片机单片机31.1.标号:标号:指令的符号地址。指令的符号地址。2.2.操作码:操作码:指明指令功能。指明指令功能。3.3.操作数:操作数:指令操作对象。包括数据、地址、寄存器名及约定符号。指令操作对象。包括数据、地址、寄存器名及约定符号。4.4.注释行:注释行:说明指令在程序中的作用。说明指令在程序中的作用。 操作码和操作数操作码和操作数是指令主体。是指令主体。MOV_move传送传送XCH_exchange交换交换ANL_and logic与逻辑运与逻辑运算算XRL_exclusive or异或运异或运算算MUL_Multiply乘法乘法RR_rotate right右循环右循环

2、SJMP_short jump短跳短跳转转RET_return 子程序返回子程序返回第1页/共48页 指令中操作码和操作数是指令主体,称为指令可执行部分,附录指令表中可查出对应指令代码。指令中操作码和操作数是指令主体,称为指令可执行部分,附录指令表中可查出对应指令代码。举例:举例:汇编语言:汇编语言:机器语言:机器语言:MOV AMOV A,R0R0E8HE8HMOV R6MOV R6,#32H#32H7E 32H7E 32HMOV 40HMOV 40H,#64H#64H75 40 64H75 40 64H11101000011111100011001001110101010000000110

3、0100第2页/共48页在介绍指令之前,先把描述指令的一些符号的意义作些介绍在介绍指令之前,先把描述指令的一些符号的意义作些介绍。Rn当前工作寄存器区中的8个寄存器R.0R7(n=07)。 Ri当前工作寄存器区中的2个工作寄存器R.0、R1(i=0,1)。 direct8位的内部数据存储器单元中的地址。 #data包含在指令中的8位常数。 #data16包含在指令中的16位常数。 addr1616位目的地址。 addr1111位目的地址。 rel8位带符号的偏移字节,简称偏移量。 DPTR数据指针,可用作16位地址寄存器。 bit内部RAM或专用寄存器中的直接寻址位。A累加器。 B专用寄存器,

4、用于乘法和除法指令中。 C进位标志或进位位,或布尔处理机中的累加器。 间址寄存器或基址寄存器的前缀, 如Ri,DPTR。 / 位操作数的前缀,表示对该位操作数取反,如/bit。 单元中的内容。 ()由寻址的单元中的内容。 箭头左边的内容被箭头右边的内容所代替。第3页/共48页一一. .立即寻址方式立即寻址方式指令中给出实际操作数据指令中给出实际操作数据( (立即数)。立即数)。 8 8位立即数:位立即数: MOV AMOV A,#40H#40H ;A A40H40H 16 16位立即数:位立即数: MOV DPTRMOV DPTR,#2100H #2100H ;DPTRDPTR2100H210

5、0H位位( (b) b) 位寻址区中的一位二进制数据位寻址区中的一位二进制数据字节字节( (B) 8B) 8位二进制数据位二进制数据字字( (W) 16W) 16位双字节数据位双字节数据第4页/共48页 例例2 2:MOV MOV PSWPSW,#20H#20H;PSW PSW #20H#20H PSWPSW为直接寻址寄存器的符号地址。为直接寻址寄存器的符号地址。例例1 1:MOV AMOV A,30H30H;A A (30H30H)思考题:思考题:直接寻址方式指令和立即寻址方式指令的形式有什么不同?直接寻址方式指令和立即寻址方式指令的形式有什么不同?65H 31H 7FH30H 65HA第5

6、页/共48页 41H 67H 40H 30H30H40H30H40H40H0100 0000A0010 0000R00100 0000R04040H H第6页/共48页12H2000H 六六. .位寻址方式位寻址方式 对位地址中的内容作位操作的寻址方式。它其实是一种直接寻址方式。对位地址中的内容作位操作的寻址方式。它其实是一种直接寻址方式。例:例: MOV MOV C C,40H40H;CyCy( (位地址位地址4040H)H) 设指令执行前设指令执行前 Cy=1Cy=1,位地址位地址4040H H存储器单元如上图,执行指令后,存储器单元如上图,执行指令后,Cy= Cy= ?02008H 89

7、H2009H 12H28H 0110001029H 11010111位寻址区47H-40H位地址号4FH-48H第7页/共48页 以当前程序计数器以当前程序计数器PCPC的内容为基础,加指令给出的一偏移量形成新的的内容为基础,加指令给出的一偏移量形成新的PCPC值的寻址方式。值的寻址方式。 SJMPSJMP0606H H20002000H H20082008H HPCPC200020002 2PCPC+ +20082008 例:例:SJMP 06HSJMP 06H;PC PC PC+2+06HPC+2+06H 假设该指令在程序存储器假设该指令在程序存储器20002000H H(即即PC=200

8、0HPC=2000H),),则执行指令后,则执行指令后,PC= PC= ?程序的执行过程如右图所示。程序的执行过程如右图所示。即:程序转移到即:程序转移到20082008H H处执行。处执行。20082008H H第8页/共48页3-3-13-3-1 数据传送指令数据传送指令实现寄存器、存储器之间的数据传送。实现寄存器、存储器之间的数据传送。一一. . 内部传送指令内部传送指令:片内数据存储器数据传送。片内数据存储器数据传送。 二二. . 外部传送指令外部传送指令:片外数据存储器数据传送。片外数据存储器数据传送。三三. . 交换指令交换指令: 片内数据存储器数据传送。片内数据存储器数据传送。

9、四四. . 堆栈操作指令堆栈操作指令:片内数据存储器数据传送。片内数据存储器数据传送。 五五. . 查表指令查表指令: 程序存储器数据传送。程序存储器数据传送。第9页/共48页指令机器码:指令机器码:E8E8EFEFE5E5 directdirectE6E6、E7E7 74 74 datadata F8F8FFFFA8A8AFAF direct direct 78787F7F data data MOV AMOV A,Rn Rn ;ARnARnMOV AMOV A,directdirect;A(direct)A(direct)MOV AMOV A,Ri Ri ;A(Ri)A(Ri)MOV AM

10、OV A,#data #data ;AdataAdataMOV Rn,AMOV Rn,A;RnARnAMOV Rn,directMOV Rn,direct;Rn(direct)Rn(direct)MOV Rn,#dataMOV Rn,#data;RndataRndata MOV dirMOV dir,A A ;(dir)A(dir)AMOV dirMOV dir,RnRn;(dir)Rn(dir)RnMOV dir1,dir2MOV dir1,dir2;(dir1)(dir2)(dir1)(dir2)MOV dirMOV dir,#data#data;(dir)data(dir)dataMOV

11、 dir,RiMOV dir,Ri;(dir)(Ri)(dir)(Ri)MOV Ri,AMOV Ri,A;(Ri)A(Ri)AMOV Ri,dirMOV Ri,dir;(Ri)dir(Ri)dirMOV Ri,#dataMOV Ri,#data;(Ri)data(Ri)dataMOV DPTR,#data16MOV DPTR,#data16;DPTRdata16DPTRdata16指令机器码:指令机器码:F5 F5 dirdir88888F 8F dirdir85 85 dir2 dir1dir2 dir175 75 dir datadir data 868687 87 dirdirF6F6F

12、7F7 dir dir A6A6A7A7 dir dir76767777 data data9090 data16 data16第10页/共48页地址内容60H32H32H58H例例2 2:用两种寻址方式实现,将片内用两种寻址方式实现,将片内RAM RAM 6060H H单元的数据传送给累加器单元的数据传送给累加器A A。;A= 30HA= 30H;(40H)= 30H(40H)= 30H;R0= 20HR0= 20H;(20H)= 30H(20H)= 30H;(30H)= 30H(30H)= 30H解解2 2: MOV R0MOV R0,#60H#60H MOV AMOV A,R0R0解解1

13、 1: MOV A,60HMOV A,60H第11页/共48页 4.4.只有指令表中的指令才有对应指令代码,计算机才能执行。编程时,不能随意创造发明指令。只有指令表中的指令才有对应指令代码,计算机才能执行。编程时,不能随意创造发明指令。1. 一条指令中不能同时出现两个工作寄存器:一条指令中不能同时出现两个工作寄存器:非法非法指令:指令:MOV R1MOV R1,R2R2MOV R2MOV R2,R0R02. 间址寄存器只能使用间址寄存器只能使用 R0R0、R1R1。 非法非法指令:指令:MOV AMOV A,R2R23. SFRSFR区只能直接寻址,不能用寄存器间接寻址。区只能直接寻址,不能用

14、寄存器间接寻址。非法非法指令:指令:MOV R0MOV R0,#80H#80HMOV AMOV A,R0R0第12页/共48页指令机器码指令机器码E2E2E3HE3HF2F2F3HF3HE0HE0HF0HF0H第13页/共48页MOV DPTRMOV DPTR,#2000H#2000HMOVX AMOVX A,DPTRDPTRMOV DPTRMOV DPTR,#2100H#2100HMOVX DPTRMOVX DPTR,A A片外RAM地址内容2000HXDPTR2100H片外RAM地址内容2000HXDPTR2100HX习习 题:题:将片外将片外RAM 0000HRAM 0000H单元的数据

15、传送到片内单元的数据传送到片内RAMRAM地址为地址为6060H H的单元的单元。; DPTR= 2000HDPTR= 2000H; A= X A= X; DPTR= 2100H DPTR= 2100H;(2100H)= X(2100H)= X片外数据存储器不能直接寻址。下列为片外数据存储器不能直接寻址。下列为非法非法指令:指令: MOVX AMOVX A,2000H 2000H MOVX 2100H MOVX 2100H,2000H2000H思考题:思考题:为什么对为什么对DPTRDPTR的数据传送使用内部传送指令?的数据传送使用内部传送指令?第14页/共48页习题:习题:将片内将片内RAM

16、RAM6060H H单元与单元与6161H H单元的数据交换。单元的数据交换。例例4 4:设设A= 29HA= 29H,(2AH)=38H,(2AH)=38H,执行指令执行指令 XCH AXCH A,2AH2AH后,后,A= A= ?(2AH)= (2AH)= ?38H29HXCH 60HXCH 60H,61H 61H 对吗?对吗?指令机器码:指令机器码:C8C8CFHCFHC6C6C7H C7H C5C5 dir dir 第15页/共48页XCHD AXCHD A,Ri Ri ;A A0 03 3 (Ri)(Ri)0 03 3 SWAP ASWAP A ;A A4 47 7 A A0 03

17、3例例5 5:将片内将片内2 2AHAH和和2 2BHBH单元中的单元中的ASCIIASCII码转换成压缩式码转换成压缩式BCDBCD码存入码存入2020H H单元。单元。压压缩缩 式式BCD码码千位 百位十位 个位A0000000000H00001000100000001000010108H80H85HMOV A,#00HMOV R0,#2AHMOV R1,#2BHXCHD A,R0SWAP AXCHD A,R1MOV 20H, A0000000000H0000000000H片内RAM地址内容2BH35H2AH38H20H85HR1R0单单字字节节 BCD0000 千位0000 百位0000

18、 十位0000 个位习题:习题:交换片内交换片内RAM RAM 4040H H单元和单元和 41 41H H单元的低半字节。单元的低半字节。指令机器码:指令机器码:D6D6D7HD7HC4 C4 第16页/共48页片内 RAM34H33H32H31H30H SPSP SP 02 SP 56H 02 56H 02HSP SP 56H 02 SP 56H 02 56H SP 02 02HA56HSBRSBR: MOV SP MOV SP,#30H #30H ;设栈底;设栈底 PUSH APUSH A PUSH B PUSH B MOV A MOV A,#00H#00H MOV MOV B B,#0

19、1H#01H POP POP B B POP A POP A机器码:机器码:C0 C0 dirdirD0D0 dir dir PCPCPCPCPCPCPCPCPCPCPCPCB00H01H56H02H第17页/共48页第18页/共48页第19页/共48页思考题:思考题:当当00X255X255时,如何用查表法编程求时,如何用查表法编程求Y=XY=X2 2。第20页/共48页第21页/共48页该类指令共该类指令共2424条。主要是进行无符号数的四则运算。与数据传送指令不同,多数算术运算指令会影响标志位的状态,即条。主要是进行无符号数的四则运算。与数据传送指令不同,多数算术运算指令会影响标志位的状

20、态,即CPUCPU执行算术运算指令后,根据数据操作情况自动设置标志位的状态。执行算术运算指令后,根据数据操作情况自动设置标志位的状态。Cy AC F0 RS1 RS0 OV P MCS-51 MCS-51 的程序状态字寄存器的程序状态字寄存器 PSW PSW 为标志寄存器。其格式为标志寄存器。其格式如下:如下: 其中标志位其中标志位( (自动设置状态自动设置状态) )为为CYCY、ACAC、OVOV和和P P。用户选择用户选择位位( (编程设置状态编程设置状态) )有有RS0RS0、RS1RS1和和F0F0。第22页/共48页 0011 10110011 1011 + + 0011 10110

21、011 1011 0111 01100111 01107676H H 0 0 0 0 1 1 1 11 1)不带进位加法:)不带进位加法: ADDADD A A,源源操作数(影响操作数(影响CyCy、OVOV、ACAC、P P) ADD A , Rn ; A A + Rn ADD A ,direct ; A A +(direct) ADD A ,Ri ; A A +(Ri) ADD A,#data ; A A + #data 例例1 1:A=3BHA=3BH,PSW=0PSW=0,执行指令执行指令 ADD AADD A,#3BH#3BH求:求:A= A= ,Cy= Cy= ,OV= OV= ,

22、AC= AC= ,P= P= ,PSW= PSW= ? 01000001= 4101000001= 41H H解解: OV=CyOV=Cy7 7 CyCy6 6=0=0,无进位无进位Cy=0Cy=0,产生辅助进位产生辅助进位AC=1AC=1,A A中数据的个数为奇数,中数据的个数为奇数,P=1P=1。第23页/共48页 1001 10101001 1010 1110 00111110 0011 + + 0 0 1 1 0111 11010111 11012 2)带进位加法:带进位加法: ADDC AADDC A,源源操作数(影响操作数(影响CyCy、OVOV、ACAC、P P) ADDC A

23、, Rn ; A A + Rn + C ADDC A ,direct ; A A +(direct)+ C ADDC A ,Ri ; A A +(Ri)+ C ADDC A,#data ; A A + #data + C 其中:C来自PSW状态寄存器中的进位位C。7 7DHDH 1 1 1 1 0 0 0 0例例2 2:A= 9AHA= 9AH,R2= E3HR2= E3H,PSW= 0PSW= 0,执行指令执行指令ADDC AADDC A,R2R2 后求:后求:A= A= ,Cy= Cy= ,OV= OV= ,AC= AC= ,P= P= ,PSW= PSW= ?10000100 = 841

24、0000100 = 84H H第24页/共48页片片 内内 RAM地地 址址内内 容容46HZH45HZM44HZL43HYH42HYL41HXH40HXLADDSADDS:MOV AMOV A,40H40HADD AADD A,42H42HMOV 44HMOV 44H,A AMOV AMOV A,41H41HADDC AADDC A,43H43HMOV 45HMOV 45H,A AMOV AMOV A,#0#0ADDC AADDC A,#0#0MOV 46HMOV 46H,A ARETRET;取被加数低字节取被加数低字节;加上加数低字节;加上加数低字节;保存和的低字节;保存和的低字节;取被加

25、数高字节;取被加数高字节;加上加数高字节;加上加数高字节;保存和的高字节;保存和的高字节;求高字节进位;求高字节进位;子程序结束;子程序结束;低字节相加;低字节相加;高字节相加;高字节相加;计算高字节进位;计算高字节进位;子程序结束;子程序结束第25页/共48页0000 0 0 0 0 0 0 0 0习题:习题:编程求双字节减法编程求双字节减法。设设X X、Y Y存在片内存在片内 RAM 60HRAM 60H起始单元,计算起始单元,计算 Z=X-Y Z=X-Y 。 例:例:A= 5AHA= 5AH,R2= 5AHR2= 5AH,Cy= 0Cy= 0,执行下列指令执行下列指令SUBB ASUBB

26、 A,R2R2求:求:A= A= ,Cy= Cy= ,OV= OV= ,P= P= ,AC= AC= ?第26页/共48页注意:注意:没有指令没有指令 DEC DPTR DEC DPTR 可用指令可用指令 DEC DPL DEC DPL 代替代替第27页/共48页例:例:A=60H(96), B=C0H(192)A=60H(96), B=C0H(192),执行指令执行指令 MUL AB MUL AB 后,后, 求:求:A= A= ,B= B= ,Cy= Cy= ,OV= OV= ,P= P= ?解:解: 96 96 192 = 18432(4800192 = 18432(4800H)H)000

27、0H H 48H48H 0 0 1 1 0 01212H H 0CH0CH 0 0 0 0 0 0例:例:A=F6H(156)A=F6H(156),B=0DH(13)B=0DH(13),执行指令执行指令 DIV AB DIV AB 后后求:求:A= A= ,B= B= ,Cy= Cy= ,OV= OV= ,P= P= ?解:解: 156 156 13 = 18(12 13 = 18(12H)H),余数余数= = 12(12(0 0CH)CH)。思考题:思考题:如何实现多字节数据的乘除运算。如何实现多字节数据的乘除运算。DIV AB DIV AB ;A AB B,AA商,商,BB余数,余数,Cy

28、0Cy0,;当除数当除数B=0B=0,OV1OV1;B0B0,则则OV0OV0第28页/共48页十进制加法指令十进制加法指令:ADD AADD A,源操作数源操作数DA ADA A带进位十进制加法指令带进位十进制加法指令:ADDC AADDC A,源操作数源操作数DA A DA A 作业作业:BCDBCD码加法编程。码加法编程。设设X X、Y Y为为4 4位压缩位压缩BCDBCD码,求码,求 Z=X+YZ=X+Y。三、三、BCDBCD调整指令:调整指令:DADAA A;对对 A A 中加法结果进行调整,且必须跟中加法结果进行调整,且必须跟 ;在;在ADDADD或或ADDCADDC指令之后。指令

29、之后。第29页/共48页 1)“与与”操作指令操作指令 ANL A ,Rn ;A A Rn ANL A , direct ;A A (direct) ANL A , Ri ;A A (Ri) ANL A ,#data ;A A #data2)“或或”操作指令操作指令 ORL A ,Rn ;A A Rn ORL A , direct ;A A (direct) ORL A , Ri ;A A (Ri) ORL A ,#data ;A A #data ORL direct ,A ;(;(direct) (direct) A ORL direct , #data ;(;(direct) (direc

30、t) #data 逻辑运算指令共有逻辑运算指令共有24条。主要用于对条。主要用于对8位数进行逻辑位数进行逻辑“与与”、“或或”、“异或异或”、取反、清零以及循环移位。、取反、清零以及循环移位。第30页/共48页5)8 8位循环指令位循环指令 RL A ;A A循环左移一位循环左移一位 RR A ;A A循环右移一位循环右移一位 3)“异或异或”操作指令操作指令 XRL A ,Rn ;A A Rn XRL A , direct ;A A (direct) XRL A , Ri ;A A (Ri) XRL A ,#data ;A A #data XRL direct ,A ;(;(direct)

31、(direct) A XRL direct , #data ;(;(direct) (direct) #data 4)求反与清除指令求反与清除指令 CPL A ;A A CLR A ;A 0第31页/共48页6)9 9位循环指令位循环指令RLC ARLC A;带带CyCy循环左移一位循环左移一位RRC ARRC A;带带CyCy循环右移一位循环右移一位例例2 2:A=23HA=23H,执行指令执行指令 CPL A CPL A 后,后,A= A= ?解:解: 23 23H H取反为取反为DCHDCH。例例1 1:A=23HA=23H,(,(20H20H)=40H=40H,执行指令执行指令 ANL

32、 AANL A,20H 20H 后后 A= A= ?解:解: 2323H H40H=00H40H=00H例例3 3:A=20HA=20H,执行指令执行指令 RL A RL A 后,后,A= A= ?解:解: A A中的各位向左移中的各位向左移1 1位后,位后,A=40HA=40H。0000H HDCHDCH4040H H第32页/共48页例例4 4:设设 A= 11000101 A= 11000101 ,Cy= 0Cy= 0,分别执行下列单条指令分别执行下列单条指令: :CPL ACPL A 求:求:A= A= ,Cy= Cy= RL ARL ARLC ARLC A 10001010 1000

33、1010 1 10CyR6R5Cy;Cy=0Cy=0, 设设 R6= 55H R6= 55H ,R5= AAHR5= AAH;R6=01010101R6=01010101,R5=10101010R5=10101010,Cy=0Cy=0;R6=01010101R6=01010101,R5=01010100R5=01010100,Cy=1Cy=1;R6=10101011R6=10101011,R5=01010100R5=01010100,Cy=0Cy=0思考题:思考题:如何将寄存器如何将寄存器R2R2中的数据奇数位取反,偶数位不变?中的数据奇数位取反,偶数位不变?第33页/共48页按转移方式分类:

34、按转移方式分类:1 1)绝对转移绝对转移:指令给出转移目的的绝对地址:指令给出转移目的的绝对地址 nnnn,执行指令后,执行指令后,PCPCnnnn。2)相对转移相对转移:指令给出转移目的与转移指令的相对偏移量:指令给出转移目的与转移指令的相对偏移量e e,执行指令后,执行指令后,PCPCPCPC + + e e 。 第34页/共48页第35页/共48页相对偏移量相对偏移量 rel rel 的计算式的计算式:r rel = el = 目的指令地址目的指令地址 -( -(转移指令地址转移指令地址+ +指令字节数指令字节数) ) 第36页/共48页相对偏移量相对偏移量 = 2150 = 2150H

35、 -(2130H+2)= 001EHH -(2130H+2)= 001EH,只取低只取低8 8位:位:e = 1EHe = 1EH 指令机器码:指令机器码:801801EHEH指令地址指令地址源程序源程序21302130H H SJMP NEXT SJMP NEXT 2150 2150H HNEXTNEXT:MOV AMOV A,R2R2第37页/共48页KEY:KEY: MOV DPTR,#KTAB MOV DPTR,#KTAB MOV A,40H MOV A,40H ADD A,A ADD A,A JMP A+DPTRJMP A+DPTRKTAB:KTAB: AJMP FUNC0 AJMP

36、 FUNC0 AJMP FUNC1AJMP FUNC1 FUNC0: FUNC0: FUNC1: FUNC1: 应用:处理功能键。应用:处理功能键。要求不同功能键执行不同程序段。设每个功能键对应一个键值要求不同功能键执行不同程序段。设每个功能键对应一个键值 X(0XFH)X(0XFH)。 设设X X已存入片内已存入片内RAMRAM的的4040H H单元中。单元中。若若X=0X=0,则执行程序段则执行程序段FUNC0FUNC0若若X=1X=1,则执行程序段则执行程序段FUNC1FUNC1。第38页/共48页条件转移指令形成程序的分支,赋予计算机判断决策能力。条件转移指令形成程序的分支,赋予计算机

37、判断决策能力。转移条件:转移条件:1)1)标志位的状态标志位的状态 2) 2)位地址中的状态位地址中的状态 JNZ rel JNZ rel ;PCPC+2+rel(PCPC+2+rel(转移转移) ) ;若;若A=00HA=00H,PCPC不变不变( (不转移不转移) ) 2. 2.判判CyCy转移指令转移指令JC rel JC rel ;Cy=1Cy=1则转移则转移( (PCPC+2+relPCPC+2+rel) ), ;Cy=0Cy=0不转移不转移 JNC rel JNC rel ;Cy=0Cy=0则转移则转移( (PCPC+2+relPCPC+2+rel) ), ;Cy=1Cy=1不转移

38、不转移第39页/共48页 JBC bitJBC bit,relrel ;(b)=1(b)=1转移转移( (PCPC+2+relPCPC+2+rel) ), ;且;且( (bit)bit)0 0,否则不转移,否则不转移4. 4. 比较不相等转移指令:比较不相等转移指令: CJNECJNE A A,directdirect,relrel; 若若A (direct ),则转移则转移 ;(PC PC+3+rel),否则程序顺序执行否则程序顺序执行 CJNE ACJNE A,#data#data,rel rel ;若若A #data,则转移则转移 ;(PC PC+3+rel), 否则程序顺序执行否则程序

39、顺序执行 CJNE RiCJNE Ri,#data#data,relrel第40页/共48页6 6循环转移指令:循环转移指令:DJNZ RnDJNZ Rn,relrel;Rn Rn-1,若若Rn 0,则转移则转移 ;PC PC+2+rel;否则否则,程序顺序执行。程序顺序执行。 DJNZ directDJNZ direct,rel rel ;direct (direct)-1, ;若;若(direct) 0,则转移则转移(PC PC+3+rel); ;否则否则,程序顺序执行。程序顺序执行。例:例:用于循环结构程序。设要求程序循环执行用于循环结构程序。设要求程序循环执行100100次次MOV R

40、2MOV R2,#64H #64H ;设循环计数器初值设循环计数器初值LOOPLOOP: ;多次循环程序段多次循环程序段 DJNZ R2DJNZ R2,LOOPLOOP;循环控制循环控制 ;循环结束;循环结束 说明:CJNE指令对标志指令对标志C有影响。若第一操作数大于或等于第二有影响。若第一操作数大于或等于第二操作数,则操作数,则C=0;否则;否则C=1。利用对。利用对C的判断,可使这几条指令实的判断,可使这几条指令实现两操作数相等与否的判断,还可完成两数大小的比较。现两操作数相等与否的判断,还可完成两数大小的比较。第41页/共48页一长调用指令一长调用指令LCALL addr16LCALL

41、 addr16 ;PCPCPC+3PC+3, , ;SPSPSP+1SP+1,(SP)(SP)PCPCL L,SPSPSP+1SP+1,(SP)(SP)PCPCH H;PCPCaddr16addr16addr16addr16为子程序起始地址,编程时可用标号代替。为子程序起始地址,编程时可用标号代替。指令机器码:指令机器码:12 12 addr16addr16 指令调用范围:指令调用范围:6464KBKB主 程 序CALL SCALL S子 程 序 SRET 与转移指令不同,转移时,先用堆栈保存当前地址。与转移指令不同,转移时,先用堆栈保存当前地址。第42页/共48页二绝对调用指令二绝对调用指令ACALL addr11ACALL addr11 ;PCPCPC+2PC+2 ;SPSPSP+1SP+1,(SP)(SP)PCPCL L,SPSPSP+1SP+1,(SP)(SP)PCPCH H ;PCPC10100 0addr11,PCaddr11,PC15

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论