单片微型计算机原理及其应用电子教案12_第1页
单片微型计算机原理及其应用电子教案12_第2页
单片微型计算机原理及其应用电子教案12_第3页
单片微型计算机原理及其应用电子教案12_第4页
单片微型计算机原理及其应用电子教案12_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、1.2 MCS-51单片机指令系统MCS-51单片机指令系统特点(1)指令执行时间快。)指令执行时间快。(2)指令短,约有一半的指令为单字节指令。)指令短,约有一半的指令为单字节指令。(3)用一条指令即可实现)用一条指令即可实现2个一字节的相乘或个一字节的相乘或相除。相除。(4)具有丰富的位操作指令。)具有丰富的位操作指令。 (5)可直接用传送指令实现端口的输入输出操)可直接用传送指令实现端口的输入输出操作。作。1.2.1 MCS-51指令系统的分类、格式及一般说明1.2.1.1 指令分类指令分类数据传递与交换数据传递与交换算术运算算术运算逻辑运算逻辑运算程序转移程序转移布尔处理操作布尔处理操

2、作(位操作指令位操作指令)1.2.1.2 指令格式指令格式在在MCS-51指令中,一般指令主要由操作码、操指令中,一般指令主要由操作码、操作数组成。作数组成。(1)操作码指明执行什么性质和类型的操作。)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。例如,数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所)操作数指明操作的数本身或者是操作数所在的地址。在的地址。(3)指定操作结果存放的地址。)指定操作结果存放的地址。1.2.1.3 指令描述符号介绍Rn当前选中的寄存器区中的当前选中的寄存器区中的8个工作寄存器个工作寄存器R0R7(n=07)。)。Ri当前选中的

3、寄存器区中的当前选中的寄存器区中的2个工作寄存器个工作寄存器R0、R1(i=0,1)。)。direct8位的内部数据存储器单元中的地址。位的内部数据存储器单元中的地址。#data包含在指令中的包含在指令中的8位常数。位常数。#data16包含在指令中的包含在指令中的16位常数。位常数。addr1616位目的地址。位目的地址。addr1111位目的地址。位目的地址。rel8位带符号的偏移字节,简称偏移量。位带符号的偏移字节,简称偏移量。DPTR数据指针,可用作数据指针,可用作16位地址寄存器位地址寄存器指令描述符号介绍bit内部内部RAM或专用寄存器中的直接寻址位。或专用寄存器中的直接寻址位。A

4、累加器。累加器。B专用寄存器,用于乘法和除法指令中。专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加进位标志或进位位,或布尔处理机中的累加器。器。间址寄存器或基址寄存器的前缀,如间址寄存器或基址寄存器的前缀,如Ri,DPTR。/ 位操作数的前缀,表示对该位操作数取反,位操作数的前缀,表示对该位操作数取反,如如/bit。片内片内RAM的直接地址或寄存器。的直接地址或寄存器。()由由寻址的单元中的内容。寻址的单元中的内容。 箭头左边的内容被箭头右边的内容所代替箭头左边的内容被箭头右边的内容所代替1.2.2 分类指令1.2.2.1 数据传送类指令数据传送类指令数据传送类指令

5、共数据传送类指令共28条,是将源操作数送到目的操条,是将源操作数送到目的操作数。指令执行后,源操作数不变,目的操作数作数。指令执行后,源操作数不变,目的操作数被源操作数取代。数据传送类指令用到的助记符被源操作数取代。数据传送类指令用到的助记符有有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8种。种。源操作数可采用寄存器、寄存器间接、直接、立即、源操作数可采用寄存器、寄存器间接、直接、立即、变址变址5种寻址方式寻址,目的操作数可以采用寄种寻址方式寻址,目的操作数可以采用寄存器、寄存器间接、直接寻址存器、寄存器间接、直接寻址3种寻址方式。种寻址方式。1以A为目的操作数(

6、机器码)MOV A,Rn;A Rn,(,(A)=(Rn)MOV A,direct;A(direct), (A)=(direct)MOV A,#data;A #data, (A)= #dataMOV A,Ri (重点重点);A(Ri), (A)=((Ri))以以Ri中的内容为地址,取该地址的内容送给中的内容为地址,取该地址的内容送给A。注意:是注意:是from、copy操作操作,2以Rn为目的操作数MOV Rn,A;Rn ( A)MOV Rn,direct;Rn (direct)MOV Rn,#data;Rn #data如如 MOV R6,#45H 注意:注意: Rn为为R0R73以直接地址为目

7、的操作数MOV direct ,A; direct ( A)MOV direct , Ri ; direct (Ri) MOV direct ,#data; direct #dataMOV direct , Rn ; direct ( Rn )MOV direct1 , direct2; direct 1 (direct2)如:如:MOV 30H,56H4以间接地址为目的操作数MOV Ri,A;(;(Ri) (A)MOV Ri,direct;(;(Ri) (direct)MOV Ri,#data;(;(Ri) #data以以Ri的内容为地址,把的内容为地址,把#data的送入该单元中。的送入该

8、单元中。例如:设(例如:设(30H)=6FH,R1=40H,(40H)=26H执执行行MOV R1,30H后,后,30H单元中数据取出送入单元中数据取出送入R1间接寻址的间接寻址的40H单元,单元,(40H)=6FH,而不是而不是26H=6FH.5以DPTR为目的操作数MOV DPTR,#data16 ;DPTR #data16例如执行例如执行 MOV DPTR,#2000H 后,(后,(DPTR)= 2000H。注意:其他注意:其他 MOV 指令均为指令均为1字节数。字节数。直接地址直接地址direct累加器累加器A直接地址直接地址direct间接地址间接地址Ri寄存器寄存器Rn立即数立即数

9、#data寄存器寄存器DPTR6访问外部数据RAMMOVX A,DPTR ;A (DPTR)MOVX DPTR,A ;(;( DPTR ) AMOVX A,Ri;A (P2Ri)MOVX Ri,A;(;(P2Ri) A特点:双向传送,必须由特点:双向传送,必须由A传送传送,外地址由外地址由DPTR及及P2Ri确定确定把外部把外部ram单元单元3000h的内容写入的内容写入A中中(1) MOV DPTR,#3000H MOVX A, DPTR(2) MOV P2,#30H MOV R1,#00H MOVX A,R1(3) MOVX A,3000H (错错)7读程序存储器MOVC A,A+DPTR

10、;A (A)+(DPTR)MOVC A,A+PC;A (A)+(PC)注意:只有对注意:只有对ROM的读(无写)指令,的读(无写)指令, PC为当前为当前指令所在指令所在ROM空间的地址空间的地址+1例如已知例如已知A=30H,DPTR=3000H, 程序存储器单程序存储器单元(元(3030H)=50H,执行,执行MOVC A, A+DPTR后后例如例如 MOVC A,A+PC 存在存在ROM空间空间1203H, (A)=30H, (A)+(PC)= 1233H, (A)=8数据交换字节交换字节交换XCH A,Rn;A RnXCH A ,direct ;A(direct)XCH A,Ri;A(

11、Ri)如:如:XCH A ,30H;设(;设(A)=98H,(30H)=07H 结果结果 (A)=,(30H)=半字节交换半字节交换(低低4位互换位互换)XCHD A,Ri ;A03(Ri)03SWAP A;A03A47如如:设(设(A)=98H;SWAP A ;(A)=89H9堆栈操作(难点)所谓堆栈是在片内所谓堆栈是在片内RAM中按中按“先进后出,后进先出先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由指针原则设置的专用存储区。数据的进栈出栈由指针SP统一管理。队列:先进先出的存储结构管理。统一管理。队列:先进先出的存储结构管理。堆栈的操作有如下两条专用指令:堆栈的操作有如下两条

12、专用指令: PUSH direct;SP(SP)+1,(SP)(direct) POPdirect;direct((SP)),SP (SP)-1堆栈指令主要用于子程序和数据保护,保证程序的堆栈指令主要用于子程序和数据保护,保证程序的正常执行正常执行。PUSH进栈指令执行过程片内片内RAM30H11H10HSP片内片内RAM50H40H11H10HSP40H30H片内片内RAM50H40H11H10H50HSP30H片内片内RAM40H11H10H34HSP30H34H34H执 行执 行前前执 行执 行前前执行前执行前PUSH指令后执行执行POP指令后【例【例1】 将片内将片内RAM 30H单元

13、与单元与40H单元中的内容单元中的内容互换。互换。方法方法1(直接地址传送法):(直接地址传送法): MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法方法2(间接地址传送法):(间接地址传送法): MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$方法方法3(字节交换传送法):(字节交换传送法): MOVA,30H XCHA,40H MOV30H,A SJMP$方法方法4(堆栈传送法):(堆栈传送法): PUSH30H PUSH40H POP30H POP40H SJMP$1.2.2.2 算术运

14、算类指令1加法指令(对加法指令(对PSW的影响)的影响)ADD A,Rn;A (A) +( Rn)ADD A,direct ;A (A) +(direct)ADD A,Ri;A (A) +((Ri))ADD A,#data ;A (A) + #data注意:加法操作在注意:加法操作在A中完成。并对中完成。并对PSW中的中的CY,AC,OV,P产生影响。产生影响。如:如: ADD A,#28H;设设(A)=B9H则结果则结果(A)=E1H; CY=0,AC=1,OV=1,P=02带进位加指令带进位加指令ADDC AADDC A,RnRn;A (A) + (RnA (A) + (Rn) + (C)

15、 + (C)ADDC AADDC A,directdirect;A (A) +A (A) +(directdirect)+ + (C)(C)ADDC AADDC A,RiRi;A (A) +(Ri)+(CA (A) +(Ri)+(C) )ADDC AADDC A,#data#data;A (A) +data +(C)A (A) +data +(C)C C为来自为来自PSWPSW状态寄存器中的进位位状态寄存器中的进位位C,C,是运算前的是运算前的C C ,运算后的,运算后的C C不参加运算不参加运算 。例如,设例如,设(A)=20H(A)=20H,(R0)=21H(R0)=21H,(C)=1(C

16、)=1,执行指,执行指令令 ADDCADDC,R0R0后,后,A=42HA=42H。 3带借位减指令SUBB A,Rn ;A (A) ( Rn) ( C)SUBB A,direct;A (A) -(direct)- (C)SUBB A,Ri;A (A) ((Ri))-( C)SUBB A,#data;A (A) - #data ( C) 注意:单片机没有不带借位的减法。可以先使注意:单片机没有不带借位的减法。可以先使c=0后再使用后再使用SUBB指令指令例如,设例如,设A=39H,R0=20H,(,(20H)=32H,C=1,4乘法指令MUL AB ;BA (A)(B)A和和B中各存放一个中各

17、存放一个8位无符号数,指令执行后,位无符号数,指令执行后,16位乘积的高位乘积的高8位在位在B中,低中,低8位存位存A中。中。例如,例如,A=30H,B=60H,执行,执行 MUL AB 后,后,A=00H,B=12H注意注意MUL对对PSW的影响的影响.5除法指令 DIV AB;(A)(B) AB,商在商在A中,余中,余数在数在B中中 A和和B中各存放一个中各存放一个8位无符号数,位无符号数,A放被除数,放被除数,B放除数。指令执行后,放除数。指令执行后,A中存放商,中存放商,B中存中存入余数。若入余数。若B=00H,则指令执行后,则指令执行后OV=1,A与与B不变。不变。 例如,例如,A=

18、30H,B=07H,执行,执行 DIV AB 后,后,A=06H,B=06H。6加1指令INC A;A (A) + 1INC Rn;Rn (Rn) + 1INC direct;direct ((direct))+ 1INC Ri ;(;(Ri)((Ri))+ 1INC DPTR;DPTR (DPTR )+ 1例如,(例如,(30H)=22H,执行,执行 INC 30H 后,后,(30H)=23H。7减1指令DEC A;A (A) - 1DEC Rn;Rn (Rn) - 1DEC direct;direct (direct)- 1DEC Ri;(;(Ri)((Ri))- 1例如,例如,R0=30

19、H,(,(30H)=22H,执行,执行 DEC R0 后,(后,(30H)=21H。注意:没有注意:没有 DEC DPTR的指令。可用的指令。可用 DEC DPL指令指令8十进制调整指令DA A ;把;把A中按二进制相加的结果调整成按中按二进制相加的结果调整成按BCD码相加的结果码相加的结果例如,例如,A=65BCD,B=78BCD,C=0,执行下列语,执行下列语句句ADD A,B; ADD 后,后,DAA前不能使用对前不能使用对C或或AC有影响的指令。有影响的指令。DA A;A=43 BCD,C=1。DA操作核心:(操作核心:(1)对低半字节对低半字节09H OR AC=1的的数进行数进行+

20、06H的操作。的操作。 (2)对高字节)对高字节90H OR C=1的数进行的数进行+60H的操作。的操作。【例【例2】 试把存放在试把存放在R1R2和和R3R4中的两个中的两个16位数相加,位数相加,结果存于结果存于R5R6中。解:参考程序如下:中。解:参考程序如下: MOVA,R2;取第一个数的低;取第一个数的低8位位 ADD A,R4;两数的低;两数的低8位相加位相加 MOVR6,A;保存和的低;保存和的低8位位 MOVA,R1;取第一个数的高;取第一个数的高8位位 ADDCA,R3;两数的高;两数的高8位相加,并把低位相加,并把低8位位相加时的进位位加进来相加时的进位位加进来 MOVR

21、5,A;把相加的高;把相加的高8位存入位存入R5寄存器中寄存器中 SJMP $ 1.2.2.3 逻辑运算与循环类指令1“与与”操作指令操作指令ANL A,#data ;(A)=(A) #dataANL A, direct ;(A)=(A) ( direct)ANL A,Rn ;(A)=(A) (Rn)ANL A, Ri ;(A)=(A) (Ri)ANL direct , #data ;(direct )=(direct ) #dataANL direct 1, direct2;(direct 1 )=(direct 1 ) (direct 2 )2“或”操作指令ORL A,#data ;(A)

22、=(A) #dataORL A, direct ;(A)=(A) ( direct)ORL A,Rn ;(A)=(A) (Rn)ORL A, Ri ;(A)=(A) (Ri)ORL direct , #data ;(direct )=(direct ) #dataORL direct 1, direct2;(direct 1 )=(direct 1 ) (direct 2 )3“异或”操作指令XRL A,#data ;(A)=(A) #dataXRL A, direct ;(A)=(A) ( direct)XRL A,Rn ;(A)=(A) (Rn)XRL A, Ri ;(A)=(A) (Ri

23、)XRL direct , #data ;(direct )=(direct ) #dataXRL direct 1, direct2;(direct 1 )=(direct 1 ) (direct 2 )4求反与清除指令CLR A ; (A)=0CPL A; (A)=(/A)5循环指令RR A ;右移操作;右移操作RL A ;左移操作;左移操作RRC A;带进位的右移操作;带进位的右移操作RLC A;带进位的左移操作;带进位的左移操作注意:该指令常用于乘、除注意:该指令常用于乘、除2的的n次幂的操作。次幂的操作。并且只能在并且只能在A中进行。中进行。例:将例:将30H的内容的内容*4放入放入

24、31H和和32H中,中, 31H为为高位。高位。1.2.2.4 位操作指令1位数据传送指令位数据传送指令MOVC,bit;C(bit)MOV bit,C;bit(C)2位状态修改指令位状态修改指令CLR C;C0CLR bit;bit0CPL C;CCPL bit;bit(bit)SETBC;C1SETBbit;bit13位逻辑运算指令位逻辑运算指令ANL C,bit;C(C)(bit)ANL C,/bit;C(C)(bit)ORL C,bit;C(C)(bit)ORL C,/bit;C(C)(bit) 1.2.2.5 程序转移类指令1无条件转移指令无条件转移指令绝对(短)转移指令绝对(短)转

25、移指令AJMPaddr11;PC100 addr11 长转移指令长转移指令LJMPaddr16;PC addr16短(相对)转移指令短(相对)转移指令SJMPrel;PC PC + 2 + rel 间接转移指令间接转移指令JMP A+DPTR ;PC A + DPTR无条件转移指令区别地址范围地址范围地址空间地址空间地址计算地址计算相对偏移量相对偏移量rel的求法的求法2条件转移指令累加器为零(非零)转移指令累加器为零(非零)转移指令JZrel; 若若(A)=0,则转移,则转移;PC(PC)+2+rel;否则程序顺序执行否则程序顺序执行JNZ rel; 若若(A)0,则转移则转移;PC(PC)+2+rel;否则程序顺序执;否则程序顺序执减1非零转移指令DJNZ Rn, rel; DJNZ direct,rel;(Rn)=(Rn)-1;if (Rn)0 转移;否则转移;否则 顺序执行。顺序执行。两数不等转移指令CJNE A,#data,relCJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,rel三分支指令三分支指令 if A=data c=0;否则否则c=1; if A=data ,则顺序执行,反之则转移。,则

温馨提示

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

评论

0/150

提交评论