版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 MCS-51指令系统第一节指指令系系统概述述一、指令令类型MCS-51指指令系统统:数据传送送指令算术运算算指令逻辑运算算指令位操作指指令控制转移移指令二、指令令格式操作码操操作数1,操作数数2,操作作数3操作码:表示指指令进行行何种操操作。操作数:指出了了参加操操作的数数据或数数据存放放的地址址。操作数和和操作码码之间用用一个或或几个空空格隔开开,操作作数之间间以逗号号“,”分开。三、伪指指令不产生机机器语言言指令,仅提供供汇编控控制信息息。1定位位伪指令令ORGmm:代表表16位位地址。功能:指指出汇编编语言程程序通过过编译,得到的的机器语语言程序序的起始始地址。2定义义字节伪伪指
2、令DBX1,X2,XnXi:单字节数数据。它它为十进进制或十十六进制制数,也也可以为为一个表表达式。Xi也也可以为为由两个个单引号号“”所括起起来的一一个字符符串,每一个个字符为为一个ASCII码。功能:X1,X2,Xn 送目目标程序序存储器器,通常常用于定定义一个个常数表表。3字定定义伪指指令DWY1,Y2,YnYi:双双字节数数据。它它可以为为十进制制或十六六进制的的数,也也可以为为一个表表达式。功能:Y1,Y2,Yn送目标标程序存存储器,经常用用于定义义一个地地址表。4汇编编结束伪伪指令END功能:汇汇编结束束标志。5标号号和注释释标号:操操作码操操作数1,操作数数2,操作作数3;注释释
3、标号:加加在指令令之前,必须以以字母开开始,后后跟18个字字母或数数字,并并以冒号号“:”结尾。标号的的值是它它后面的的指令存存储地址址。注释:对对某一条条指令或或某一段段程序的的功能说说明,它它必须以以分号“;”开开始。四、常用用的缩写写符号A累累加加器ACC。AB累累加器ACC和和寄存器器B组成成的寄存存器对。C进进位位标志位位CY,也是位位操作指指令中的的位累加加器。Rn表表示当当前选中中的通用用寄存器器R0R7(n=07)。Ri表表示示通用寄寄存器中中可用作作8位地地址指针针的R0和R1(i=0,1)。direct直直接地地址,取取值为00FFH。data立立即即数,表表示一个个常数。
4、间间接寻寻址。addr表表示外外部数据据存储器器的地址址。bit表表示内部部RAM或特殊殊功能寄寄存器中中的直接接位地址址。寄寄存器器。()寄寄存器器内容。()由由X寄存存器寻址址的存储储器单元元内容。()寄寄存器器的内容容取反。rrr指指令编码码中rrr三位位值由工工作寄存存器Rn确定,R0R7对对应rrr为000111。指指本条条指令起起始地址址。rel相相对偏移移量,其其值为128+127。第二节寻寻址址方式寻址方式式:指令令给出参参与运算算的数据据的方式式。一、寄存存器寻址址指令指出出某一个个寄存器器的内容容作为操操作数。寻址空间间:R0R7A、B、C、AB、DPTR二、直接接寻址在指
5、令中中含有操操作数的的直接地地址,该该地址指指出了参参与运算算或传送送的数据据所在的的字节单单元或位位的地址址。直接寻址址方式访访问以下下三种存存储空间间:特殊功能能寄存器器(特殊殊功能寄寄存器只只能用直直接寻址址方式访访问)。内部数据据存储器器的低128字字节。位地址空空间。三、寄存存器间接接寻址指令指出出某一个个寄存器器的内容容作为操操作数的的地址。寻址空间间:内部部RAM(R0、R1、SP)外部数据据存储器器(R0、R1、DPTR)四、立即即寻址立即寻址址方式中中操作数数包含在在指令字字节中,即操作作数以指指令字节节的形式式存放于于程序存存储器中中。五、基寄寄存器加加变址寄寄存器间间接寻
6、址址以16位位的程序序计数器器PC或或数据指指针DPTR作作为基寄寄存器,以8位位的累加加器A作作为变址址寄存器器,基寄寄存器和和变址寄寄存器的的内容相相加形成成16位位的地址址,该地地址即为为操作数数的地址址。寻址空间间:程序序存储器器(A+PC、A+DPTR)六、相对对寻址相对寻址址方式是是为实现现程序的的相对转转移而设设计的,为相对对转移指指令所采采用。目的地址址:PC值+转转移指令令字节数数+relPC值:执行完完该转移移指令后后的PC值。rel:带符号号的8位位二进制制补码数数,所能能表示的的数的范范围是128+127。第三节数数据据传送指指令MOV,数据传送送指令是是指把源源操作数
7、数传送到到目的操操作数。指令执执行后,源操作作数的值值不改变变,目的的操作数数的值改改为源操操作数赋赋给的相相应值。除以累加加器A为为目的操操作数寄寄存器指指令会对对奇偶标标志位P有影响响外,其其余指令令执行时时均不会会影响任任何PSW的标标志位。一、内部部数据传传送指令令1以累累加器A为目的的操作数数的指令令MOVA,Rn;n=07MOVA,directMOVA,Ri;i=0,1MOVA,#data功能:把把源操作作数的内内容送入入累加器器A。2以Rn为目目的操作作数的指指令MOVRn,A;n=07MOVRn,directMOVRn,#data功能:把把源操作作数的内内容送入入当前工工作寄存
8、存器区的的R0R7中中的某一一个寄存存器。3以直直接寻址址的单元元为目的的操作数数指令MOVdirect,AMOVdirect,Rn;n=07MOVdirect,directMOVdirect,Ri;i=0、1MOVdirect,#data功能:把把源操作作数送入入由直接接地址指指出的存存储单元元。4以寄寄存器间间接寻址址的单元元为目的的操作数数指令MOVRi,A;i=0、1MOVRi,directMOVRi,#data功能:把把源操作作数内容容送入R0或R1指出出的内部部RAM存贮单单元中。516位数据据传送指指令MOVDPTR,#datal6功能:把把16位位常数送送入DPTR。6堆栈栈操
9、作指指令内部RAM中可可以设定定一个后后进先出出(LIFO)的堆栈栈 。(1)进进栈指令令PUSHdirect功能:首首先将堆堆栈指针针SP加加1,然然后把直直接地址址指出的的内容传传送到堆堆栈指针针SP寻寻址的内内部RAM单元元中。(2)退退栈指令令POPdirect功能:堆堆栈指针针SP寻寻址的内内部RAM单元元内容送送入直接接地址指指出的字字节单元元中,堆堆栈指针针SP减减1。7字节节交换指指令XCHA,Rn;n=07XCHA,directXCHA,Ri;i=0、1功能:将将累加器器A的内内容和源源操作数数内容相相互交换换。8半字字节交换换指令XCHDA,Ri;i=0、1功能:将将A的低
10、低4位和和R0或或R1指指出的RAM单单元低4位相互互交换,各自的的高4位位保持不不变。二、累加加器A与与外部数数据存储储器传送送指令MOVXA,DPTRMOVXA,Ri;i=0,1MOVXDPTR,AMOVXRi,A功能:将将累加器器A和外外部扩展展的RAMIO口的的数据传传送。三、查表表指令1MOVCA,A+PC功能:以以PC作作为基址址寄存器器,A的的内容作作为无符符号数和和PC内内容(下下一条指指令的始始地址)相加后后得到一一个16位的地地址,由由该地址址指出的的程序存存储器单单元内容容送到累累加器A。2MOVCA,A十十DPTR功能:以以DPTR作为为基址寄寄存器,A的内内容作为为无
11、符号号数和DPTR的内容容相加得得到一个个16位位的地址址,由该该地址指指出的程程序存储储器单元元的内容容送到累累加器A。第四节算算术术运算指指令算术运算算指令有有加、减减、乘、除法指指令,增增量和减减量指令令。一、加法法指令1不带带进位的的加法指指令ADDA,Rn; n=07ADDA,directADDA,Ri;i0、1ADDA,#data功能:把所指出出的第二二操作数数和累加加器A的的内容相相加,其其结果放放在累加加器中。指令执行行后,影影响PSW标志志位。 2带进进位加法法指令ADDCA,Rn;n=07ADDCA,directADDCA,Ri;i=0、1ADDCA,#data功能:同时把
12、所所指出的的第二操操作数、进位标标志与累累加器A内容相相加,结结果放在在累加器器中。指令执行行后,影影响PSW标志志位。3增量量指令INCAINCRn;n=07INCdirectINCRi;i=0、1INCDPTR功能:把指令所所指出的的操作数数加1。除对A作作影响P外不影影响任何何PSW标志。4十进进制调整整指令DAA功能:对对累加器器A中由由上一条条加法指指令(加加数和被被加数均均为压缩缩的BCD码)所获得得8位结结果进行行调整,使它调调整为压压缩BCD码的的数。二、减法法指令1带进进位减法法指令SUBBA,Rn;n=07SUBBA,directSUBBA,Ri;i=0、1SUBBA,#d
13、ata功能:从累加器器中减去去第二操操作数和和进位标标志,结结果在累累加器中中。指令执行行后,影影响PSW标志志位。2减1指令DECADECRn;n=07DECdirectDECRi;i=0、1功能:将指定的的操作数数减1。除对A作作影响P外不影影响任何何PSW标志。三、乘法法指令MULAB功能:把把累加器器A和寄寄存器B中的8位无符符号整数数相乘,其16位积的的低位字字节在累累加器A中,高高位字节节在B中中。如果积大大于255(0FFH),则则置位溢溢出标志志OV;否则清清“0”OV。进位标标志CY总是清清“0” 。四、除法法指令DIVAB功能:把把累加器器A中的的8位无无符号整整数除以以寄
14、存器器B中的的8位无无符号整整数,所所得商的的整数部部分存放放在累加加器A中中,余数数在寄存存器B中中。如果原来来B中的的内容为为0,即即除数为为0,则则结果A和B中中内容不不定,并并置位溢溢出标志志OV。在任何何情况下下,都清清“0”CY。第五节逻逻辑辑运算指指令一、累加加器A的的逻辑操操作指令令1CLRA功能:将将累加器器A清“0”,不影响响CY、AC、OV等等标志。2CPLA功能:将将累加器器ACC的每一一位逻辑辑取反。不影响响标志。3左环环移指令令RLA4带进进位左环环移指令令RLCA5右环环移指令令RRA6带进进位右环环移指令令RRCA7累加加器ACC半字字节交换换指令SWAPA功能
15、:将将累加器器ACC的高半半字节(ACC.7ACC.4)和低半半字节(ACC.3ACC.0)互换。二、两个个操作数数的逻辑辑操作指指令1逻辑辑与指令令ANLA,Rn;n=07ANLA,directANLA,Ri;i=0、1ANLA,#dataANLdirect,AANLdirect,#data功能:操操作数之之间执行行按位的的逻辑与与操作,结果存存放在目目的操作作数中。2逻辑辑或指令令ORLA,Rn;n=07ORLA,directORLA,Ri;i=0、1ORLA,#dataORLdirect,AORLdirect,# data功能:操操作数之之间执行行按位的的逻辑或或操作,结果存存到目的的操
16、作数数中去。3逻辑辑异或指指令XRLA,Rn;n=07XRLA,directXRLA,Ri;i=0、1XRLA,#dataXRLdirect,AXRLdirect,#data功能:操操作数之之间执行行按位的的逻辑异异或操作作,结果果存放到到目的操操作数中中去。第六节位位操操作指令令进位位CY(程程序状态态字PSW.7)作为为累加器器C,以以RAM和SFR内的的位寻址址区的位位单元作作为操作作数,进进行位变变量的传传送、修修改和逻逻辑等操操作。一、位变变量传送送指令MOVC,bitMOVbit,C二、位变变量修改改指令CLRCCLRbitCPLCCPLbitSETBCSETBbit三、位变变量逻
17、辑辑操作指指令1位变变量逻辑辑与指令令ANLC,bitANLC,bit功能:如如果源位位的布尔尔值是逻逻辑0,则进位位标志清清“0”,否则则进位标标志保持持不变。操作数数前斜线线“”表示用用寻址位位的逻辑辑非作源源值,但但不影响响源位本本身值,不影响响别的标标志。2位变变量逻辑辑或指令令ORLC,bitORLC,bit功能:如如果源位位的布尔尔值为1,则置置位进位位标志,否则进进位标志志CY保保持原来来状态。同样,斜线“”表表示逻辑辑非。第七节控控制制转移指指令一、无条条件转移移指令1短跳跳转指令令AJMPaddr11指令编码码:a10a9a800001a7a6a5a4a3a2a1a0功能:2
18、KB字字节范围围内的无无条件转转跳指令令,程序序转移到到指定的的地址。该指令在在运行时时先将PC+2,然后后通过把把PC的的高5位位和指令令第一字字节高3位以及及指令第第二字节节相连(PC15PC14PC13PC12PC11a10a9a8a7a6a5a4a3a2a1a0)而得到到转跳目目的地址址送入PC。2相对对转移指指令SJMPrel功能:无无条件转转跳指令令,执行行时在PC加2后,把把指令的的有符号号的偏移移量rel加到到PC上上,并计计算出转转向地址址。因此此,转向向的目标标地址可可以在这这条指令令前128字节节到后127字字节之间间。3长跳跳转指令令LJMPaddrl6功能:把把指令提
19、提供的16位目目标地址址送入PC,无无条件地地转向指指定地址址。转移移的目标标地址可可以在64K字字节程序序存储器器地址空空间的任任何地方方,不影影响任何何标志。4基寄寄存器加加变址寄寄存器间间接转移移指令(散转指指令)JMPA+DPTR功能:把把累加器器A中8位无符符号数与与数据指指针DPTR中中的16位数相相加(模模216),结果果作为下下条指令令地址送送入PC,不改改变累加加器和数数据指针针内容,也不影影响标志志。实现程序序的散转转。二、条件件转移指指令条件满足足才转移移(相当当于执行行一条相相对转移移指令),条件件不满足足时则顺顺序执行行下面的的指令。转移目的的地址=下一一条指令令的第
20、一一个字节节地址PC+相对偏偏移量rel1测试试条件符符合转移移指令JZrel;(A)=0JNZrel;(A)0JCrel;CY=1JNCrel;CY=0JBbit,rel;(bit)=1JNBbit,rel;(bit)=0JBCbit,rel;(bit)=1(转移后后清洗直直接寻址址位)2比较较不相等等转移指指令CJNEA,direct,relCJNEA,#data,relCJNERn,#data, rel;n=17CJNERi,#data,rel;i=0、1功能:比较两个个操作数数的大小小。如果果它们的的值不相相等,则则转移。转移目的的地址=下一一条指令令的第一一个字节节地址PC+相对偏偏
21、移量rel如果第一一操作数数(无符符号整数数)小于于第二操操作数,则置位位进位标标志CY;否则则,CY清0。不影响任任何一个个操作数数的内容容。3减1不为0转移指指令DJNZRn,rel;n=17DJNZdirect,rel功能:源操作数数减1,结果回回送到源源操作数数中去。如果结果果不为0,则转转移。转移目的的地址=下一一条指令令的第一一个字节节地址PC+相对偏偏移量rel利用内部部RAM单元作作程序循循环计数数器。三、调用用和返回回指令主程序和和子程序序结构主程序二二次调用用子程序序示意图图二二级子子程序嵌嵌套示意意图调用和返返回子程序是是独立于于主程序序的具有有特定功功能的程程序段,单独
22、编编写,能能被主程程序调用用,又能能返回主主程序。堆栈和PC值的的保留调用子程程序时,CPU自动将当前PC值保保留在堆堆栈中,子程序序返回时时,自动动弹出,送入PC。现场保护护和恢复复现场现场保护护:子程程序开始始时,保保护现场场。恢复现场场:在子子程序返返回前,恢复现现场。1短调调用指令令ACALLaddr11指令编码码:a10a9a810001a7a6a5a4a3a2a1a0功能:(PC)+2 PC,并压入入堆栈,先PCL,后后PCH,(SP)+2SP。子程序入入口地址址=PC15PC14PC13PC12PC11a10a9a8a7a6a5a4a3a2a1a0PC2长调调用指令令LCALLa
23、ddrl6功能:(PC)+3 PC,并压入入堆栈,先PCL,后后PCH,(SP)+2SP。addr16PC,获获得子程程序起始始地址3返回回指令(1)从从子程序序返回指指令RET功能:从从堆栈中中退出PC的高高位和低低位字节节,把栈栈指针SP减2,并从从产生的的PC值值开始执执行程序序。(2)从从中断返返回指令令RETI功能:从从堆栈中中退出PC的高高位和低低位字节节,栈指指针减2,同时时清除中中断优先先,开放放低级中中断。4空操操作指令令NOP功能:CPU不做任任何操作作,只作作时间上上的消耗耗。常用用于程序序的等待待或时间间的延迟迟。第八节汇汇编编语言程程序设计计举例一、汇编编语言程程序的
24、结结构1、程序序设计的的基本步步骤(1)分分析题意意,明确确要求;(2)建建立思路路,确定算法法;(3)编编制框图图,绘出流程程;(4)编编写程序序,上机机调试。2、画流流程图二、延时时程序例1延延时程程序。DEL: MOVR7,#200;1TDELl:MOVR6,#125; 1TDEL2:DJNZR6,DEL2;2TDJNZR7,DEL1;2TRET;2Tfosc=12MHz晶振时时,T=1s。这段程序序的延迟迟时间为为:(250+1+2)200+1+2=50.303ms。三、查表表程序例2设设a、b为小小于10的正整整数。试试编程计计算C=a2+b2的函数值值,存入入30H中。a、b的的值
25、已存存放在40H、41H单元中中。MOVA,40HACALLSUB3;查表表得a2的值MOVR2,AMOVA,41HACALLSUB3;查表表得b2的值ADDA,R2MOV30H,ASJMP$SUB3:INCAMOVCA,APCRETDB00H,01H,04H,09H,10H,19H,24H,31H,40H,51H四、数制制转换一个整数数的十进进制表示示式为:A=an10n+a1101+a0例如:5731=5103+7102+3101+1=(510+7)10+310+1编写程序序形式:初值:Yn= an,i=n-1Y=YX+aii=i-1结束条件件:i0例34位十进进制整数数转换为为二进制制整数程程序。设单字节节BCD码a3,a2,a1,a0依次存放放于内部部RAM中的50H53H单元,转换成成的二进进制整数数存放于于R3R4。IDTB:MOVR0, #50HMOVR2,#3MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 收藏品交易合同
- 新房啥时签物业合同
- 无房本交易合同
- 杭州车位交易合同
- 案件物业服务合同
- 水果现金交易合同
- 沃尔玛自建物业合同
- 法律风险交易合同
- 浓眉哥交易合同
- 2026年会计行业会计准则与实务操作
- 小学科学新教科版二年级下册2.5.设计钓鱼玩具 练习题(附参考答案和解析)2026春
- 2025年中国铁路武汉局集团有限公司招聘高校毕业生1291人(二)笔试参考题库附带答案详解
- 2026年设备安装质量员考试题库(附答案)
- 2026中原豫资投资控股集团秋招试题及答案
- 2026中国旅游集团总部及所属企业岗位招聘9人参考题库附答案
- 2026年美的数字化转型岗-AI-面试专项训练题含答案
- 幼儿园公众号培训课件
- 油田钻井监督岗位培训考试题全集
- 休克病人护理健康教育
- 狐狸的清白教学课件
- 村级治理课件
评论
0/150
提交评论