收藏 分享(赏)

【单片机课程设计】第03章 MCS - 51单片机指令系统 .ppt

上传人:鼎天工程图书馆 文档编号:20235716 上传时间:2023-12-08 格式:PPT 页数:83 大小:808.50KB
下载 相关 举报
【单片机课程设计】第03章 MCS - 51单片机指令系统 .ppt_第1页
第1页 / 共83页
【单片机课程设计】第03章 MCS - 51单片机指令系统 .ppt_第2页
第2页 / 共83页
【单片机课程设计】第03章 MCS - 51单片机指令系统 .ppt_第3页
第3页 / 共83页
【单片机课程设计】第03章 MCS - 51单片机指令系统 .ppt_第4页
第4页 / 共83页
亲,该文档总共83页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 汇编语言程序设计汇编语言程序设计MCS-51单片机指令系统单片机指令系统指令系统简介指令系统简介第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统 第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式3.13.1指令系统简介指令系统简介 MCS-51系列单片机指令系统共有系列单片机指令系统共有111条指条指令,其中有令,其中有49条单字节指令,条单字节指令,45条双字节指条双字节指令和令和17条三字节指令。条三字节指令。用这些指令来完成:数据传送、算术运算、用这些指令来完成:数据传送、算术运算、逻辑运算、位操作、程序转移等。逻辑运算、

2、位操作、程序转移等。MCS-51MCS-51汇编语言指令格式,由以下几个部分汇编语言指令格式,由以下几个部分组成:组成:标号:标号:操作码操作码 目的操作数目的操作数 ,源操源操作数作数 ;注释;注释 一、指令格式一、指令格式第一节指令格式与寻址方式第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统所所谓谓寻寻址址方方式式,就就是是寻寻找找操操作作数数地地址址的的方方式式,在在用用汇汇编编语语言言编编程程时时,数数据据的的存存放放、传传送送、运运算算都都要要通通过过指指令令来来完完成成。每每一一种种计计算算机机都都具具有有多多种种寻寻址址方方式式。寻寻址址方方式式的的多多少少

3、是是反反映映指指令令系系统统优优劣劣的的主主要要指指标标之之一一。寻寻址址方方式式越越多多,指令功能越强。指令功能越强。二、寻址方式二、寻址方式第一节指令格式与寻址方式第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式1.7种寻址方式种寻址方式 (1 1)立即寻址立即寻址;(2 2)直接寻址直接寻址;(3 3)寄存器寻址寄存器寻址;(4 4)寄存器间接寻址寄存器间接寻址;(5 5)基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址;(6 6)相对寻址相对寻址;(7 7)位寻址。位寻址。第第3 3章章 MCS-51MCS-51单片机指令系统单片

4、机指令系统第一节指令格式与寻址方式(1)立即寻址:立即寻址:立即寻址方式是将操作数直接存放在指令字立即寻址方式是将操作数直接存放在指令字节中,作为指令的一部分存放在代码段里。节中,作为指令的一部分存放在代码段里。比如:比如:MOV A,MOV A,3AH3AH 跟在指令操作码后面的数就是参加运跟在指令操作码后面的数就是参加运算的数算的数,该操作数称为立即数。立即数有一字该操作数称为立即数。立即数有一字节和二字节两种可能节和二字节两种可能,如指令如指令:MOV DPTR,:MOV DPTR,0DFFFH0DFFFH 上述两条指令均为立即寻址方式上述两条指令均为立即寻址方式,第第一条指令的功能是将

5、立即数一条指令的功能是将立即数 3AH3AH送累加器送累加器A A中中,第二条指令的功能是将立即数第二条指令的功能是将立即数 0DFFFH0DFFFH送数据送数据指针指针DPTRDPTR中(中(0DFHDPH,0FFHDPL0DFHDPH,0FFHDPL)。)。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(1)立即寻址:立即寻址:注意:注意:数据作为立即数操作时候,前面必须加数据作为立即数操作时候,前面必须加“#”#”如果碰到立即数的高位是如果碰到立即数的高位是ABCDEF,ABCDEF,则前面还则前面还要加要加0 0。MOV P1,#55H;M

6、OV P1,#55H;指将立即数指将立即数H H送到送到P1P1口口MOV 20H,#55H;MOV 20H,#55H;指将立即数存放到指将立即数存放到H H这个地址这个地址单元中去单元中去 (数据作为地址的时候,前面不用加(数据作为地址的时候,前面不用加#)MOV R4,#0FHMOV R4,#0FH;指将立即数;指将立即数0FH0FH送到寄存器送到寄存器R4R4中中第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(2)直接寻址:直接寻址:在指令中直接给出操作数的地址在指令中直接给出操作数的地址,这种寻这种寻址方式就属于直接寻址方式。在这种方式址方

7、式就属于直接寻址方式。在这种方式中中,指令的操作数部分直接是操作数的地指令的操作数部分直接是操作数的地址。址。如:如:MOV AMOV A,30H30H;将;将H H里面的数送里面的数送到里面到里面 MOVMOV21H,30H21H,30H;将;将H H里面的数存里面的数存放到放到21H21H里面里面第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(2)直接寻址:)直接寻址:在在MCS-51 MCS-51 单片机指令系统中单片机指令系统中,直接寻址方式中直接寻址方式中可以访问可以访问 3 3 种存储器空间种存储器空间:(1)(1)内部数据存储器的低内

8、部数据存储器的低 128 128 个字节个字节单元(单元(00H00H7FH7FH)。)。(2)(2)特殊功能寄存器。特殊功能寄存器特殊功能寄存器。特殊功能寄存器只能用直接寻址方式进行访问。比如:只能用直接寻址方式进行访问。比如:MOVMOVA,P1A,P1;将;将SFRSFR中中P1P1口的数据送入口的数据送入A A 第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(3)寄存器寻址:寄存器寻址:在该寻址方式中在该寻址方式中,参加操作的数存放在寄参加操作的数存放在寄存器里。寄存器包括存器里。寄存器包括8 8个工作寄存器个工作寄存器R0R0R7,R7,

9、累加器累加器A,A,寄存器寄存器B B、数据指针、数据指针DPTRDPTR和和布尔处理器的位累加器布尔处理器的位累加器C C。比如:比如:MOV P1,AMOV P1,A MOV P1,R4 MOV P1,R4 CLR A;CLR A;将将A A清零清零 CPL ACPL A;A A中的内容取反中的内容取反 RL ARL A;A A中的内容左移中的内容左移第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(4)寄存器间接寻址:寄存器间接寻址:该寻址方式中该寻址方式中,寄存器的内容为操作数的寄存器的内容为操作数的地址。地址。寄存器间接寻址只能使用寄存器寄

10、存器间接寻址只能使用寄存器R0R0、R1 R1 作为地址指针作为地址指针,寻址内部寻址内部RAMRAM区的数据区的数据;当访问外部当访问外部RAMRAM时时,可使用可使用R0R0、R1R1及及DPTRDPTR作作为地址指针。寄存器间接寻址符号为为地址指针。寄存器间接寻址符号为“”,”,第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(4)寄存器间接寻址:寄存器间接寻址:注:、访问内部数据注:、访问内部数据RAMRAM和外部数据和外部数据RAMRAM所用操所用操作码是不一样的:内部为作码是不一样的:内部为MOVMOV,外部为,外部为MOVXMOVX比如

11、:比如:MOV A,R0MOVX A,DPTR、当用、当用R0R0和和R1R1对外部数据对外部数据RAMRAM作间接寻址作间接寻址时,由于外部数据时,由于外部数据RAMRAM需要位地址,而需要位地址,而R0R0和和R1R1只能提供位地址,因此必须借助只能提供位地址,因此必须借助P2P2口的位口的位来作为高位地址。来作为高位地址。比如:比如:MOVR0,A MOVX A,R0;这条指令意思这条指令意思是把外部是把外部RAMRAM中地址为中地址为P2R0P2R0的单元内容给的单元内容给A A。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(5)基址寄存

12、器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址这种寻址方式用于访问程序存储器中的数这种寻址方式用于访问程序存储器中的数据表格据表格,它以基址寄存器它以基址寄存器DPTRDPTR或或PCPC的内容的内容为基本地址为基本地址,加上变址寄存器加上变址寄存器A A的内容作为的内容作为操作数的地址操作数的地址,例如例如:MOVC A,DPTR+A MOVC A,PC+A 比如:累加器比如:累加器A A02H,DPTR=0300H,02H,DPTR=0300H,外部外部ROMROM中,中,0302H0302H地址单元的内容为地址单元的内容为55H55H,则执行指令则执行指令MOVC A,DPTR+A

13、后,后,A A中内容为中内容为55H55H。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(6)相对寻址:相对寻址:在在MCS-51 MCS-51 指令系统中设有转移指令指令系统中设有转移指令,分分为直接转移和相对转移指令为直接转移和相对转移指令,在相对转移在相对转移指令中采用相对寻址方式。这种寻址方式指令中采用相对寻址方式。这种寻址方式是以是以PCPC的内容为基本地址的内容为基本地址,加上指令中给加上指令中给定的偏移量作为转移地址,也就是目的地定的偏移量作为转移地址,也就是目的地址(用来修改址(用来修改PCPC的值)。指令中给出的偏的值)。指令中

14、给出的偏移量是一个移量是一个 8 8 位带符号的常数位带符号的常数,可正可负可正可负,其范围为其范围为128128+127+127。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(4)相对寻址:相对寻址:如:执行指令如:执行指令SJMPSJMPH H,是将,是将PCPC当前的内容当前的内容与与54H54H相加,结果再送回到相加,结果再送回到PCPC中,成为下一条将中,成为下一条将要执行指令的地址。设指令要执行指令的地址。设指令SJMPSJMPH H的机器的机器码为码为H54HH54H存放在存放在2000H2000H处,当执行到该指令处,当执行到该指

15、令时,先从时,先从2000H2000H和和2001H2001H单元取出指令,单元取出指令,PCPC自动变自动变成成2002H2002H,再把,再把PCPC的内容加上的内容加上H H,形成目标地,形成目标地址址H H,送回,送回PCPC,使程序跳转到,使程序跳转到H H单元继续执行。单元继续执行。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第一节指令格式与寻址方式(7)位寻址:位寻址:指按照位进行的寻址操作,(前面讲指按照位进行的寻址操作,(前面讲的都是按字节进行的寻址操作)。该种寻的都是按字节进行的寻址操作)。该种寻址方式中址方式中,操作数是内部操作数是内部RAMRAM

16、单元中单元中20H20H到到2FH2FH的个位地址以及的个位地址以及SFRSFR中的个中的个可进行位寻址的寄存器中的位地址寻址。可进行位寻址的寄存器中的位地址寻址。比如:比如:MOV C,20HMOV C,20H;就是将;就是将RAMRAM中位寻址中位寻址区中区中20H20H位地址中的内容送给位地址中的内容送给C C。区别与。区别与MOVMOVA,20HA,20H;这个是将内部;这个是将内部RAMRAM中中H H单元的内单元的内容送给容送给A A。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统程序中使用最多的指令程序中使用最多的指令程序中使用最多的指令程序中使用最多的指令

17、,主要用于内部主要用于内部主要用于内部主要用于内部RAMRAMRAMRAM、寄存器、外部寄存器、外部寄存器、外部寄存器、外部RAMRAMRAMRAM以及程序存储器之间的数据以及程序存储器之间的数据以及程序存储器之间的数据以及程序存储器之间的数据传送、保存以及交换。传送、保存以及交换。传送、保存以及交换。传送、保存以及交换。工作原理:将源操作数简单地传给目的工作原理:将源操作数简单地传给目的工作原理:将源操作数简单地传给目的工作原理:将源操作数简单地传给目的操作数,而源操作数的内容不变,操作数,而源操作数的内容不变,操作数,而源操作数的内容不变,操作数,而源操作数的内容不变,PSWPSWPSWP

18、SW的内容的内容的内容的内容不改变。不改变。不改变。不改变。分类:内部数据传送指令、外部传送指分类:内部数据传送指令、外部传送指分类:内部数据传送指令、外部传送指分类:内部数据传送指令、外部传送指令、查表指令、交换指令和堆栈指令。令、查表指令、交换指令和堆栈指令。令、查表指令、交换指令和堆栈指令。令、查表指令、交换指令和堆栈指令。第二节数据传送指令3.23.2数据传送指令数据传送指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统1、内部数据传送指令、内部数据传送指令1 1 1 1、内部数据传送指令(、内部数据传送指令(、内部数据传送指令(、内部数据传送指令(1616161

19、6条)条)条)条)内部内部内部内部8 8 8 8位数据传送指令共位数据传送指令共位数据传送指令共位数据传送指令共15151515条,主要用条,主要用条,主要用条,主要用于于于于MCS-51MCS-51MCS-51MCS-51第二节数据传送指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统(1)(1)将数据传送到累加器将数据传送到累加器将数据传送到累加器将数据传送到累加器A A的指令(的指令(的指令(的指令(4 4条)条)条)条)例例:已知累加器已知累加器A A的内容为的内容为30H,30H,寄存器寄存器R0R0的内容的内容为为50H,50H,内部内部RAM30HRAM30

20、H单元的内容为单元的内容为40H,40H,内部内部RAM50HRAM50H单元的内容为单元的内容为10H,10H,请指出下列每条指令请指出下列每条指令执行以后相应单元内容的变化执行以后相应单元内容的变化.解:解:指指 令令 相应操作相应操作 A A中的结果中的结果MOV A,#20H A#20H 20HMOV A,30H A (30H)40HMOV A,R0 A (R0)50HMOV A,R0 A (50H)10H第二节数据传送指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统(2 2)将数据传送到工作寄存器)将数据传送到工作寄存器)将数据传送到工作寄存器)将数据传送到工

21、作寄存器RnRn的指令(的指令(的指令(的指令(3 3条)条)条)条)这里源操作数不能进行寄存器间接寻址这里源操作数不能进行寄存器间接寻址,也就是也就是MOV Rn,Rn 这个指令是不能用的。这个指令是不能用的。第二节数据传送指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统(2 2)将数据传送到工作寄存器)将数据传送到工作寄存器)将数据传送到工作寄存器)将数据传送到工作寄存器RnRn的指令(的指令(的指令(的指令(3 3条)条)条)条)例例:已知累加器已知累加器A A的内容为的内容为30H,30H,寄存器寄存器R7R7的内容的内容为为50H,50H,内部内部RAM30H

22、RAM30H单元的内容为单元的内容为40H,40H,内部内部RAM50HRAM50H单元的内容为单元的内容为10H,10H,请指出下列每条指令请指出下列每条指令执行以后相应单元内容的变化执行以后相应单元内容的变化.解:解:执行指令:执行指令:MOV R7,A MOV R7,A 结果:结果:R7=30HR7=30H MOV R7,#40H R7=40H MOV R7,#40H R7=40H MOV R7,50H R7=10H MOV R7,50H R7=10H第二节数据传送指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统(3 3)将)将)将)将8 8位数据直接传送到直接地

23、址(内部位数据直接传送到直接地址(内部位数据直接传送到直接地址(内部位数据直接传送到直接地址(内部RAMRAM单元或单元或单元或单元或SFRSFR寄存寄存寄存寄存器)指令(器)指令(器)指令(器)指令(5 5条)条)条)条)第二节数据传送指令例:例:R0=50H,(50H)=10H,R0=50H,(50H)=10H,指令指令 MOV 35H,MOV 35H,R0R0执行以后,(执行以后,(35H35H)=10H=10H。这一操作也可用。这一操作也可用指令指令MOV 35H,50HMOV 35H,50H第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统(4 4)将)将)将)将8

24、 8位数据传送到以间接寄存器寻址的位数据传送到以间接寄存器寻址的位数据传送到以间接寄存器寻址的位数据传送到以间接寄存器寻址的RAMRAM单元的单元的单元的单元的指令(指令(指令(指令(3 3条)。条)。条)。条)。注意:这里的注意:这里的注意:这里的注意:这里的i i i i只能是只能是只能是只能是0 0 0 0或者或者或者或者1 1 1 1第二节数据传送指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统例例:已知相应单元的内容如下表所示,请指出已知相应单元的内容如下表所示,请指出下列指令执行后各单元内容相应的变化。下列指令执行后各单元内容相应的变化。(4 4)将)将)将

25、)将8 8位数据传送到以间接寄存器寻址的位数据传送到以间接寄存器寻址的位数据传送到以间接寄存器寻址的位数据传送到以间接寄存器寻址的RAMRAM单元的单元的单元的单元的指令(指令(指令(指令(3 3条)。条)。条)。条)。解:解:第二节数据传送指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统将高将高8 8位数据送入位数据送入DPHDPH,低,低8 8位数据送入位数据送入DPLDPL中。中。(5 5)1616位数据传送指令(位数据传送指令(位数据传送指令(位数据传送指令(1 1条)条)条)条)第二节数据传送指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令

26、系统2、外部传送指令、外部传送指令第二节数据传送指令 当当CPU与外部数据存储器进行数据传送与外部数据存储器进行数据传送时,所用的指令为外部传送指令。时,所用的指令为外部传送指令。通过累加器通过累加器A来完成。采用寄存器间接来完成。采用寄存器间接寻址方式,而间接寻址的寄存器为寻址方式,而间接寻址的寄存器为R0、R1和和DPTR。其中。其中R0、R1为为8位寄存器,位寄存器,DPTR为为16位寄存器。位寄存器。注意:此类传送指令结果通常影响程序状注意:此类传送指令结果通常影响程序状态字态字PSW的的P位。位。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统2、外部传送指令、外

27、部传送指令第二节数据传送指令如:如:DPTR=2000H,DPTR=2000H,外部外部RAMRAM中中(2000H)=18H(2000H)=18H,指令指令MOVX A,DPTR执行以后,执行以后,A=18HA=18H。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统2、外部传送指令、外部传送指令第二节数据传送指令比如说:将外部数据存储器比如说:将外部数据存储器2040H2040H中的数据传中的数据传送到外部数据存储器送到外部数据存储器2560H2560H中。中。解:解:MOV DPTR,#2040H MOVX A,DPTR MOV DPTR,#2560H MOVX DP

28、TR,A第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统3、查表指令、查表指令第二节数据传送指令 程序存储器除了存放程序以外,还可以存程序存储器除了存放程序以外,还可以存放表格常数。找出表格中所需的常数,所放表格常数。找出表格中所需的常数,所用的指令为查表指令。用的指令为查表指令。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统3、查表指令、查表指令第二节数据传送指令 第一条指令为远查表指令,可以在第一条指令为远查表指令,可以在64K64K的程序的程序存储器空间寻址。基地址寄存器为存储器空间寻址。基地址寄存器为DPTRDPTR,其意,其意思为,思为,DP

29、TRDPTR里面存放的是程序存储器中数据表里面存放的是程序存储器中数据表格的首地址,格的首地址,A A为数据地址的偏移量。为数据地址的偏移量。这条指令执行以后,以这条指令执行以后,以 (A A)+(DPTRDPTR)的数值为地址数据就送进的数值为地址数据就送进A A里面来了,也就是里面来了,也就是从表格首地址开始以后的第(从表格首地址开始以后的第(A A)个数据被送)个数据被送进进A A了。(举例子说明)了。(举例子说明)第二条指令为近查表指令,查表范围为第二条指令为近查表指令,查表范围为256B256B的地址空间。基地址为的地址空间。基地址为PCPC,查表的地址为,查表的地址为(A)+(PC

30、)(A)+(PC),其中,其中,(PC)(PC)为程序计数器的当前内为程序计数器的当前内容,即查表指令的地址再加容,即查表指令的地址再加1 1。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统4、交换指令、交换指令第二节数据传送指令第一条指令(第一条指令(SWAP ASWAP A),为累加器低),为累加器低4 4位与位与高高4 4位交换指令。位交换指令。比如:比如:A=35H,A=35H,指令指令SWAP ASWAP A执行后执行后,A=53H,A=53H第二条指令(第二条指令(XCHD XCHD A,A,RiRi),为内部为内部RAMRAM单单元低元低4 4位内容与累加器

31、低位内容与累加器低4 4位内容交换指令。位内容交换指令。比如:比如:A=80H,R0=32H,(32H)=FFH,A=80H,R0=32H,(32H)=FFH,指令指令XCHD XCHD A,A,R0R0执行以后,执行以后,A=8FH,(32H)=F0HA=8FH,(32H)=F0H。(1)半字节交换指令)半字节交换指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第二节数据传送指令如:如:A=80H,R7=45H,指令指令XCH A,R7执执行以后行以后,A=45H,R7=80H A=60H,R0=25H,(25H)=23H,指令指令XCH A,R0执行后,执行后,A=

32、23H,(25H)=60H(2 2)字节交换指令()字节交换指令(8 8位数据进行互换)位数据进行互换)第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统5、堆栈操作指令、堆栈操作指令第二节数据传送指令 (1)(1)堆栈是用户自己设定的内部堆栈是用户自己设定的内部RAMRAM中的一块专中的一块专用存储区用存储区,使用时一定要先设堆栈指针使用时一定要先设堆栈指针,堆栈指针堆栈指针缺省为缺省为SP=07HSP=07H。(2)(2)堆栈操作必须是字节操作,且只能直接寻堆栈操作必须是字节操作,且只能直接寻址。将累加器址。将累加器A A入栈、出栈指令可以写成:入栈、出栈指令可以写成:P

33、USH PUSH ACCACC和和POP ACCPOP ACC而不能写成而不能写成PUSH APUSH A和和POP APOP A第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统5、堆栈操作指令、堆栈操作指令第二节数据传送指令设堆栈指针为设堆栈指针为30H30H,将累加器,将累加器A A和和DPTRDPTR中的内容中的内容压入,然后根据需要再将它们弹出,编写实现压入,然后根据需要再将它们弹出,编写实现该功能的程序段。该功能的程序段。解:解:MOV SP,#30H MOV SP,#30H ;设置堆栈指针,;设置堆栈指针,SP=30HSP=30H为栈底地址为栈底地址 PUSH

34、ACC PUSH ACC ;SP+1 SP,SP=31H,ACC (SP)SP+1 SP,SP=31H,ACC (SP)PUSH DPH PUSH DPH ;SP+1 SP,SP=32H,DPH (SP)SP+1 SP,SP=32H,DPH (SP)PUSH DPL PUSH DPL ;SP+1 SP,SP=33H,DPL (SP)SP+1 SP,SP=33H,DPL (SP)。POP DPL ;POP DPL ;(SPSP)DPLDPL,SP-1 SPSP-1 SP,SP=32HSP=32H POP DPH ;POP DPH ;(SPSP)DPHDPH,SP-1 SPSP-1 SP,SP=3

35、1HSP=31H POP ACC ;POP ACC ;(SPSP)ACCACC,SP-1 SPSP-1 SP,SP=30HSP=30H第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第二节数据传送指令综合运用:把片内综合运用:把片内RAMRAM中中H H单元中的内容与单元中的内容与40H40H地址单元中的内容互换地址单元中的内容互换解:解:方法一(直接地址传送法)方法一(直接地址传送法)MOVA,50H MOVB,A MOVA,40H MOV50H,A MOVA,B MOV40H,A SJMP$第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第二节数据传

36、送指令综合运用:把片内综合运用:把片内RAMRAM中中H H单元中的内容与单元中的内容与40H40H地址单元中的内容互换地址单元中的内容互换解:解:方法二(间接地址传送)方法二(间接地址传送)MOV R0,#40HMOV R1,#50HMOV A,R0MOV B,R1MOV R1,AMOV R0,BSJMP$第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第二节数据传送指令综合运用:把片内综合运用:把片内RAMRAM中中H H单元中的内容与单元中的内容与40H40H地址单元中的内容互换地址单元中的内容互换解:解:方法三(直接地址间传送法)方法三(直接地址间传送法)MOVMO

37、VR7,50HR7,50HMOVMOV50H,40H50H,40HMOVMOV40H,R740H,R7SJMPSJMP$方法四(字节交换传送法)方法四(字节交换传送法)MOVMOVA,50HA,50HXCHXCHA,40HA,40HMOVMOV50H,A50H,ASJMPSJMP$第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第二节数据传送指令综合运用:把片内综合运用:把片内RAMRAM中中H H单元中的内容与单元中的内容与40H40H地址单元中的内容互换地址单元中的内容互换解:解:方法五(堆栈传送法)方法五(堆栈传送法)PUSH PUSH 50H50HPUSH PUSH

38、 40H40HPOP 50HPOP 50HPOP 40HPOP 40HSJMP$SJMP$第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统 算术运算类指令是单片机能完成算术运算操算术运算类指令是单片机能完成算术运算操作的指令。包括加、减、乘、除,以及作的指令。包括加、减、乘、除,以及BCDBCD码码调整指令等。调整指令等。第三节算术运算指令3.33.3算术运算指令算术运算指令1、加法指令、加法指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第三节算术运算指令1、加法指令、加法指令加法指令是将源操作数内容与累加器加法指令是将源操作数内容与累加器A A相

39、加,相加,结果存入结果存入A A中。中。注意注意:此类指令都影响程序状态字寄存器此类指令都影响程序状态字寄存器PSWPSW的的CYCY、OVOV、ACAC和和P P。这些指令在执行过程中。这些指令在执行过程中不需要考虑进位,也就是进位位不需要考虑进位,也就是进位位CyCy上有没有上有没有数,对这次运算不影响。数,对这次运算不影响。如:完成如:完成0A4H+27H0A4H+27H运算,把运算结果放到内部运算,把运算结果放到内部RAMRAM的的4040单元里面。单元里面。MOV A,#0A4H MOV A,#0A4H ADD A,#27H ADD A,#27H MOV 40H MOV 40H,A

40、A指令执行以后,指令执行以后,CY=0CY=0,OV=0OV=0,AC=0AC=0和和P=0P=0第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第三节算术运算指令2 2、带进位位的加法指令、带进位位的加法指令 将源操作数的内容与累加器将源操作数的内容与累加器A A相加,再加上相加,再加上进位位进位位CyCy的内容,将结果存放在累加器的内容,将结果存放在累加器A A中。中。与与ADDADD的区别是需要把的区别是需要把CyCy中的内容加进去。中的内容加进去。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第三节算术运算指令2 2、带进位位的加法指令、带进位

41、位的加法指令如:编写程序,完成如:编写程序,完成12A4H+0EE7H12A4H+0EE7H的运算,将结果的运算,将结果存入内部存入内部RAMRAM的的41H41H和和40H40H单元内,高单元内,高8 8位放在位放在41H41H中,中,低低8 8位放在位放在40H40H中。(设初始状态中。(设初始状态Cy=0Cy=0)解:解:MOV A,#0A4HMOV A,#0A4HADD A,#0E7HADD A,#0E7HMOV 40H,AMOV 40H,AMOV A,#12HMOV A,#12HADDC A,#0EHADDC A,#0EHMOV 41H,AMOV 41H,A第第3 3章章 MCS-5

42、1MCS-51单片机指令系统单片机指令系统十进制调整指令第第3章章 MCS-51单片机指令系统单片机指令系统DA A功能:对BCD码加法运算进行校正。原因:BCD码在加法运算过程中,实际是进行的二进制加法,并非真正加十进制加法。因此,当低四位或高四位大于9时,就要分别加6。例:MOV A,#56H ADD A,#89H DA A第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第三节算术运算指令加1指令INC AINC RnINC directINC RiINC DPTR第三节算术运算指令3 3、带借位的减法指令、带借位的减法指令 将累加器将累加器A A 中的内容减去源操作数

43、的内容,再减中的内容减去源操作数的内容,再减去进位位去进位位CyCy的内容(的内容(CYCY中保留着低位字节向高位中保留着低位字节向高位字节的借位),其结果存放在字节的借位),其结果存放在A A 中。中。如如:A=38H,R1=20H,(20H)=23H,C=1,:A=38H,R1=20H,(20H)=23H,C=1,指令指令SUBB A,SUBB A,R1R1执行以后执行以后A=14H.A=14H.第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第三节算术运算指令减1指令DEC ADEC RnDEC di

44、rectDEC Ri第三节算术运算指令4 4、乘法、除法、乘法、除法乘法和除法均指无符号数运算。也就是最高乘法和除法均指无符号数运算。也就是最高位不是符号位。位不是符号位。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第三节算术运算指令(1 1)乘法)乘法A,BA,B中各放一个中各放一个8 8位乘数,指令执行后,位乘数,指令执行后,1616位积位积的高位放在的高位放在B B中,低位放在中,低位放在A A中。运算结果影响中。运算结果影响PSWPSW中的中的CyCy、OVOV和和P P。如果积大于。如果积大于255255,则溢出,则溢出标志位标志位OVOV置置“1”1”,否则

45、,否则OVOV清零;清零;P P仍然由累加仍然由累加器器A A中中1 1的奇偶性决定;进位标志的奇偶性决定;进位标志CyCy总是为总是为”0”.0”.如:实现如:实现0A0H0A0H和和08H08H的乘法指令的乘法指令 MOV A,#0A0HMOV A,#0A0H MOV B,#08H MOV B,#08H MUL AB MUL AB 结果为(结果为(A A)=00H=00H,(,(B B)=05H=05H,P=0P=0,Cy=0Cy=0,OV=1OV=1第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第三节算术运算指令(2 2)除法)除法 A A中放一个中放一个8 8位被

46、除整数,位被除整数,B B中放的是一个中放的是一个8 8位位整数除数,指令执行后,所得到的商的整数部整数除数,指令执行后,所得到的商的整数部分存于分存于A A中,余数部分存放在中,余数部分存放在B B中。运算结果影中。运算结果影响响PSWPSW中的中的CyCy、OVOV和和P P。溢出标志位。溢出标志位OVOV置置“0”0”,当除数为,当除数为0 0时,结果产生溢出,此时时,结果产生溢出,此时OV=1OV=1。P P仍然由累加器仍然由累加器A A中中1 1的奇偶性决定;进位标志的奇偶性决定;进位标志CyCy总是为总是为”0”.0”.如:实现如:实现0AEH0AEH除以除以08H08H的指令的指

47、令 MOV A,#0AEHMOV A,#0AEH MOV B,#08H MOV B,#08H DIV AB DIV AB结果是:结果是:(A A)5H,(B)=06H,Cy=0,OV=0,P=1,5H,(B)=06H,Cy=0,OV=0,P=1,AC AC不变不变第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统逻辑运算主要包括逻辑运算主要包括:”:”与与”、”或或”、”异或异或”、求反和清零、循环移位共、求反和清零、循环移位共2424条指令。条指令。第四节逻辑运算与移位指令3.43.4逻辑运算与移位指令逻辑运算与移位指令1 1、“与与”操作操作第第3 3章章 MCS-51M

48、CS-51单片机指令系统单片机指令系统第四节逻辑运算与移位指令1 1、“与与”操作操作注意:注意:1 1、“与与”运算一般用于将字节中指定的位清运算一般用于将字节中指定的位清零,而其他位不变。零,而其他位不变。比如:比如:1110110111101101若要将其高四位清零,只要若要将其高四位清零,只要将这个数据和将这个数据和0000111100001111与一下就可以了,这与一下就可以了,这样低四位是不变的。样低四位是不变的。2 2、”与与”运算是将源操作单元的内容与目的运算是将源操作单元的内容与目的操作单元的内容相与运算后,将结果存放在操作单元的内容相与运算后,将结果存放在目的操作单元中,而

49、源操作单元中的内容不目的操作单元中,而源操作单元中的内容不变。变。第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第四节逻辑运算与移位指令1 1、“与与”操作操作 例:将累加器例:将累加器A A中的压缩中的压缩BCDBCD码变成非压缩的码变成非压缩的BCDBCD码,存入码,存入40H40H、41H41H单元中。单元中。MOV30H,AANLA,#00001111B;高4位,保留低4位MOV40H,A ;低位BCD码放入40H中MOVA,30HANLA,#11110000B;清低4位,保留高4位SWAP A ;高四位和低四位进行互换MOV41H,AEND第第3 3章章 MCS

50、-51MCS-51单片机指令系统单片机指令系统第四节逻辑运算与移位指令2 2、“或或”运算指令运算指令第第3 3章章 MCS-51MCS-51单片机指令系统单片机指令系统第四节逻辑运算与移位指令2 2、“或或”运算指令运算指令注意:注意:1 1、“或或”运算一般用于将字节中指定的位置运算一般用于将字节中指定的位置1 1,而其他位不变。,而其他位不变。比如:比如:1000000110000001若要将其第四位置若要将其第四位置1 1,只要,只要将这个数据和将这个数据和0000100000001000或一下就可以了,这或一下就可以了,这样其他位是不变的。样其他位是不变的。2 2、”或或”运算是将源

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 材料科学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报