版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章MCS-51指令系统第一节指令系统概述一、指令类型MCS-51指令系统:
数据传送指令算术运算指令逻辑运算指令位操作指令控制转移指令
二、指令格式操作码[操作数1],[操作数2],[操作数3]操作码:表示指令进行何种操作。操作数:指出了参加操作的数据或数据存放的地址。
操作数和操作码之间用一个或几个空格隔开,操作数之间以逗号“,”分开。三、伪指令不产生机器语言指令,仅提供汇编控制信息。1.定位伪指令
ORGmm:代表16位地址。功能:指出汇编语言程序通过编译,得到的机器语言程序的起始地址。2.定义字节伪指令
DBX1,X2,···,Xn
Xi:单字节数据。它为十进制或十六进制数,也可以为一个表达式。Xi也可以为由两个单引号“ˊ”所括起来的一个字符串,每一个字符为一个ASCII码。
功能:X1,X2,…,Xn送目标程序存储器,通常用于定义一个常数表。3.字定义伪指令DWY1,Y2,···,YnYi:双字节数据。它可以为十进制或十六进制的数,也可以为一个表达式。功能:Y1,Y2,…,Yn送目标程序存储器,经常用于定义一个地址表。4.汇编结束伪指令END功能:汇编结束标志。5.标号和注释标号:操作码[操作数1],[操作数2],[操作数3];注释
标号:加在指令之前,必须以字母开始,后跟1~8个字母或数字,并以冒号“:”结尾。标号的值是它后面的指令存储地址。注释:对某一条指令或某一段程序的功能说明,它必须以分号“;”开始。四、常用的缩写符号A累加器ACC。AB累加器ACC和寄存器B组成的寄存器对。C进位标志位CY,也是位操作指令中的位累加器。Rn表示当前选中的通用寄存器R0~R7(n=0~7)。Ri表示通用寄存器中可用作8位地址指针的R0和R1(i=0,1)。direct直接地址,取值为0~0FFH。#data立即数,表示一个常数。@间接寻址。addr表示外部数据存储器的地址。bit表示内部RAM或特殊功能寄存器中的直接位地址。×寄存器。(×)寄存器内容。((×))由X寄存器寻址的存储器单元内容。(×)寄存器的内容取反。rrr指令编码中rrr三位值由工作寄存器Rn确定,R0~R7对应rrr为000~111。﹩指本条指令起始地址。rel相对偏移量,其值为-128~+127。第二节寻址方式寻址方式:指令给出参与运算的数据的方式。一、寄存器寻址
指令指出某一个寄存器的内容作为操作数。寻址空间:R0~R7A、B、C、AB、DPTR二、直接寻址在指令中含有操作数的直接地址,该地址指出了参与运算或传送的数据所在的字节单元或位的地址。直接寻址方式访问以下三种存储空间:特殊功能寄存器(特殊功能寄存器只能用直接寻址方式访问)。内部数据存储器的低128字节。位地址空间。
三、寄存器间接寻址指令指出某一个寄存器的内容作为操作数的地址。寻址空间:内部RAM(@R0、@R1、SP)外部数据存储器(@R0、@R1、@DPTR)四、立即寻址
立即寻址方式中操作数包含在指令字节中,即操作数以指令字节的形式存放于程序存储器中。五、基寄存器加变址寄存器间接寻址
以16位的程序计数器PC或数据指针DPTR作为基寄存器,以8位的累加器A作为变址寄存器,基寄存器和变址寄存器的内容相加形成16位的地址,该地址即为操作数的地址。寻址空间:程序存储器(@A+PC、@A+DPTR)
六、相对寻址
相对寻址方式是为实现程序的相对转移而设计的,为相对转移指令所采用。目的地址:PC值+转移指令字节数+relPC值:执行完该转移指令后的PC值。rel:带符号的8位二进制补码数,所能表示的数的范围是-128~+127。第三节数据传送指令MOV<目的操作数>,<源操作数>数据传送指令是指把源操作数传送到目的操作数。指令执行后,源操作数的值不改变,目的操作数的值改为源操作数赋给的相应值。
除以累加器A为目的操作数寄存器指令会对奇偶标志位P有影响外,其余指令执行时均不会影响任何PSW的标志位。
一、、内内部部数数据据传传送送指指令令1..以以累累加加器器A为为目目的的操操作作数数的的指指令令MOVA,,Rn;;n=0~7MOVA,,directMOVA,,@Ri;;i=0,,1MOVA,,#data功能:把把源操作作数的内内容送入入累加器器A。2.以Rn为目目的操作作数的指指令MOVRn,A;;n=0~7MOVRn,directMOVRn,#data功能:把把源操作作数的内内容送入入当前工工作寄存存器区的的R0~~R7中中的某一一个寄存存器。3.以直直接寻址址的单元元为目的的操作数数指令MOVdirect,AMOVdirect,Rn;;n=0~7MOVdirect,directMOVdirect,@Ri;;i=0、、1MOVdirect,#data功能:把把源操作作数送入入由直接接地址指指出的存存储单元元。4.以寄寄存器间间接寻址址的单元元为目的的操作数数指令MOV@Ri,A;;i=0、1MOV@Ri,directMOV@Ri,#data功能:把把源操作作数内容容送入R0或R1指出出的内部部RAM存贮单单元中。。5.16位数据据传送指指令MOVDPTR,,#datal6功能:把把16位位常数送送入DPTR。。6.堆栈栈操作指指令内部RAM中可可以设定定一个后后进先出出(LIFO)的堆栈栈。(1)进进栈指令令PUSHdirect功能:首首先将堆堆栈指针针SP加加1,然然后把直直接地址址指出的的内容传传送到堆堆栈指针针SP寻寻址的内内部RAM单元元中。(2)退栈栈指令令POPdirect功能::堆栈栈指针针SP寻址址的内内部RAM单元元内容容送入入直接接地址址指出出的字字节单单元中中,堆堆栈指指针SP减减1。。7.字字节交交换指指令XCHA,,Rn;;n=0~7XCHA,,directXCHA,,@Ri;;i=0、1功能::将累累加器器A的的内容容和源源操作作数内内容相相互交交换。。8.半半字节节交换换指令令XCHDA,@Ri;;i=0、1功能::将A的低低4位位和R0或或R1指出出的RAM单元元低4位相相互交交换,,各自自的高高4位位保持持不变变。二、累累加器器A与与外部部数据据存储储器传传送指指令MOVXA,@DPTRMOVXA,@Ri;;i=0,1MOVX@DPTR,AMOVX@Ri,A功能::将累累加器器A和和外部部扩展展的RAM/IO口口的数数据传传送。。三、查查表指指令1.MOVCA,,@A+PC功能::以PC作作为基基址寄寄存器器,A的内内容作作为无无符号号数和和PC内容容(下下一条条指令令的始始地址址)相相加后后得到到一个个16位的的地址址,由由该地地址指指出的的程序序存储储器单单元内内容送送到累累加器器A。。2.MOVCA,@A十十DPTR功能::以DPTR作作为基基址寄寄存器器,A的内内容作作为无无符号号数和和DPTR的内内容相相加得得到一一个16位位的地地址,,由该该地址址指出出的程程序存存储器器单元元的内内容送送到累累加器器A。。第四节节算算术术运算算指令令算术运算指指令有加、、减、乘、、除法指令令,增量和和减量指令令。一、加法指指令1.不带进进位的加法法指令ADDA,Rn;;n=0~7ADDA,directADDA,@Ri;;i=0、1ADDA,#data功能:把所指出的的第二操作作数和累加加器A的内内容相加,,其结果放放在累加器器中。指令令执执行行后后,,影影响响PSW标标志志位位。。2..带带进进位位加加法法指指令令ADDCA,,Rn;;n=0~7ADDCA,,directADDCA,,@Ri;;i=0、、1ADDCA,#data功能:同时把所指出出的第二操作作数、进位标标志与累加器器A内容相加加,结果放在在累加器中。。指令执行后,,影响PSW标志位。3.增量指令令INCAINCRn;;n=0~7INCdirectINC@Ri;;i=0、、1INCDPTR功能::把指令令所指指出的的操作作数加加1。。除对A作影影响P外不不影响响任何何PSW标标志。。4.十十进制制调整整指令令DAA功能::对累累加器器A中中由上上一条条加法法指令令(加加数和和被加加数均均为压压缩的的BCD码码)所所获得得8位位结果果进行行调整整,使使它调调整为为压缩缩BCD码码的数数。二、减减法指指令1.带带进位位减法法指令令SUBBA,Rn;;n=0~7SUBBA,directSUBBA,@Ri;;i=0、、1SUBBA,#data功能::从累加加器中中减去去第二二操作作数和和进位位标志志,结结果在在累加加器中中。指令执执行后后,影影响PSW标志志位。。2.减减1指指令DECADECRn;;n=0~7DECdirectDEC@Ri;;i=0、、1功能::将指定定的操操作数数减1。除对A作影影响P外不不影响响任何何PSW标标志。。三、乘乘法指指令MULAB功能::把累累加器器A和和寄存存器B中的的8位位无符符号整整数相相乘,,其16位位积的的低位位字节节在累累加器器A中中,高高位字字节在在B中中。如果积积大于于255(0FFH),,则置置位溢溢出标标志OV;;否则则清““0””OV。进进位标标志CY总总是清清“0”。。四、除法指指令DIVAB功能:把累累加器A中中的8位无无符号整数数除以寄存存器B中的的8位无符符号整数,,所得商的的整数部分分存放在累累加器A中中,余数在在寄存器B中。如果原来B中的内容容为0,即即除数为0,则结果果A和B中中内容不定定,并置位位溢出标志志OV。在在任何情况况下,都清清“0”CY。第五节逻逻辑运算算指令一、累加器器A的逻辑辑操作指令令1.CLRA功能:将累累加器A清清“0”,,不影响CY、AC、OV等等标志。2.CPLA功能:将累累加器ACC的每一一位逻辑取取反。不影影响标志。。3.左环移移指令RLA4.带进位位左环移指指令RLCA5.右环移移指令RRA6.带进位位右环移指指令RRCA7.累加器器ACC半半字节交换换指令SWAPA功能:将累累加器ACC的高半半字节(ACC.7~ACC.4)和和低半字节节(ACC.3~ACC.0)互换。。二、两个操操作数的逻逻辑操作指指令1.逻辑与与指令ANLA,Rn;;n=0~7ANLA,directANLA,@Ri;;i=0、1ANLA,#dataANLdirect,AANLdirect,#data功能:操作作数之间执执行按位的的逻辑与操操作,结果果存放在目目的操作数数中。2.逻辑或或指令ORLA,Rn;;n=0~7ORLA,directORLA,@Ri;;i=0、、1ORLA,#dataORLdirect,AORLdirect,#data功能:操作作数之间执执行按位的的逻辑或操操作,结果果存到目的的操作数中中去。3.逻辑异异或指令XRLA,Rn;;n=0~7XRLA,,directXRLA,,@Ri;;i=0、1XRLA,,#dataXRLdirect,AXRLdirect,#data功能:操操作数之之间执行行按位的的逻辑异异或操作作,结果果存放到到目的操操作数中中去。第六节位位操操作指令令进位位CY(程程序状态态字PSW.7)作为为累加器器C,以以RAM和SFR内的的位寻址址区的位位单元作作为操作作数,进进行位变变量的传传送、修修改和逻逻辑等操操作。一、位变变量传送送指令MOVC,,bitMOVbit,C二、位变变量修改改指令CLRCCLRbitCPLCCPLbitSETBCSETBbit三、位变变量逻辑辑操作指指令1.位变变量逻辑辑与指令令ANLC,,bitANLC,,/bit功能:如如果源位位的布尔尔值是逻逻辑0,,则进位位标志清清“0””,否则则进位标标志保持持不变。。操作数数前斜线线“/””表示用用寻址位位的逻辑辑非作源源值,但但不影响响源位本本身值,,不影响响别的标标志。2.位变变量逻辑辑或指令令ORLC,,bitORLC,,/bit功能:如如果源位位的布尔尔值为1,则置置位进位位标志,,否则进进位标志志CY保保持原来来状态。。同样,,斜线““/”表表示逻辑辑非。第七节控控制制转移指指令一、无条条件转移移指令1.短跳跳转指令令
AJMPaddr11指令编码码:a10a9a800001a7a6a5a4a3a2a1a0功能:2KB字字节范围围内的无无条件转转跳指令令,程序序转移到到指定的的地址。。该指令在在运行时时先将PC+2,然后后通过把把PC的的高5位位和指令令第一字字节高3位以及及指令第第二字节节相连(PC15PC14PC13PC12PC11a10a9a8a7a6a5a4a3a2a1a0)而得到转跳跳目的地址送送入PC。2.相对转移移指令SJMPrel功能:无条件件转跳指令,,执行时在PC加2后,,把指令的有有符号的偏移移量rel加加到PC上,,并计算出转转向地址。因因此,转向的的目标地址可可以在这条指指令前128字节到后127字节之之间。3.长跳转指指令LJMPaddrl6功能:把指令令提供的16位目标地址址送入PC,,无条件地转转向指定地址址。转移的目目标地址可以以在64K字字节程序存储储器地址空间间的任何地方方,不影响任任何标志。4.基寄存器器加变址寄存存器间接转移移指令(散转转指令)JMP@A+DPTR功能:把累加加器A中8位位无符号数与与数据指针DPTR中的的16位数相相加(模216),结果作为为下条指令地地址送入PC,不改变累累加器和数据据指针内容,,也不影响标标志。实现程序的散散转。二、条件转移移指令条件满足才转转移(相当于于执行一条相相对转移指令令),条件不不满足时则顺顺序执行下面面的指令。转移目的地址址=下一条条指令的第一一个字节地址址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=1~7CJNE@Ri,#data,,rel;;i=0、1功能:比较两个操作作数的大小。。如果它们的的值不相等,,则转移。转移目的地址址=下一条条指令的第一一个字节地址址PC+相相对偏移量rel如果第一操作作数(无符号号整数)小于于第二操作数数,则置位进进位标志CY;否则,CY清0。不影响任何一一个操作数的的内容。3.减1不为为0转移指令令DJNZRn,rel;;n=1~7DJNZdirect,rel功能:源操作数减1,结果回送送到源操作数数中去。如果结果不不为0,则则转移。转移目的地地址=下下一条指令令的第一个个字节地址址PC+相对偏移移量rel利用内部RAM单元元作程序循循环计数器器。三、调用和和返回指令令主程序和子子程序结构构主程序二次次调用子程程序示意图图二二级级子程序嵌嵌套示意图图调用和返回回子程序是独独立于主程程序的具有有特定功能能的程序段段,单独编编写,能被被主程序调调用,又能能返回主程程序。堆栈和PC值的保留留调用子程序序时,CPU自动将当前PC值保留在在堆栈中,,子程序返返回时,自自动弹出,,送入PC。现场保护和和恢复现场场现场保护::子程序开开始时,保保护现场。。恢复现场::在子程序序返回前,,恢复现场场。1.短调用用指令ACALLaddr11指令编码::a10a9a810001a7a6a5a4a3a2a1a0功能:(PC)+2→→PC,,并压入堆堆栈,先PCL,后后PCH,,(SP))+2→SP。子程序入口口地址=PC15PC14PC13PC12PC11a10a9a8a7a6a5a4a3a2a1a0→PC2..长长调调用用指指令令LCALLaddrl6功能能::(PC))+3→→PC,,并并压压入入堆堆栈栈,,先先PCL,,后后PCH,,(SP))+2→→SP。。addr16→→PC,,获获得得子子程程序序起起始始地地址址3..返返回回指指令令(1)从从子子程程序序返返回回指指令令RET功能能::从从堆堆栈栈中中退退出出PC的的高高位位和和低低位位字字节节,,把把栈栈指指针针SP减减2,,并并从从产产生生的的PC值值开开始始执执行行程程序序。。(2)从中中断返返回指指令RETI功能::从堆堆栈中中退出出PC的高高位和和低位位字节节,栈栈指针针减2,同同时清清除中中断优优先,,开放放低级级中断断。4.空空操作作指令令NOP功能::CPU不做做任何何操作作,只只作时时间上上的消消耗。。常用用于程程序的的等待待或时时间的的延迟迟。第八节节汇汇编编语言言程序序设计计举例例一、汇汇编语语言程程序的的结构构1、程程序设设计的的基本本步骤骤(1))分析析题意意,明明确要要求;;(2))建立立思路路,确定算算法;(3))编制制框图图,绘出流流程;;(4))编写写程序序,上上机调调试。。2、画画流程程图二、延延时程程序例1延延时程程序。。DEL:MOVR7,,#200;;1TDELl::MOVR6,#125;;1TDEL2::DJNZR6,,DEL2;;2TDJNZR7,DEL1;;2TRET;;2Tfosc=12MHz晶晶振时时,T=1μs。这段程序序的延迟迟时间为为:(250+1+2)×200+1+2=50.303ms。三、查表表程序例2设设a、、b为小小于10的正整整数。试试编程计计算C=a2+b2的函数值值,存入入30H中。a、b的的值已存存放在40H、、41H单元中中。MOVA,40HACALLSUB3;查表表得a2的值MOVR2,AMOVA,41HACALLSUB3;查表表得b2的值ADDA,R2MOV30H,ASJMP$SUB3:INCAMOVCA,@A++PCRETDB00H,01H,04H,,09H,10H,19H,24H,31H,40H,,51H四、数制转换换一个整数的十十进制表示式式为:A=an×10n+…+a1×101+a0例如:5731=5×103+7×102+3×101+1=[(5×10+7)××10+3]×10+1编写程序形式式:初值:Yn=an,i=n-1Y=Y×X+aii=i-1结束条件:i<0例34位十进制制整数转换为为二进制整数数程序。设单字节BCD码a3,a2,a1,a0依次存放于内内部RAM中中的50H~~53H单元元,转换成的的二进制整数数存放于R3R4。IDTB:MOVR0,#50HMOVR2,#3MOVR3,#0MOVA,@
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习专题3简答题课件
- 第四章细胞的物质输入和输出教案
- 《老年人健康知识手册》
- 城市智慧城市工程合同
- 四年级语文下册教案
- 六年级上册心理健康课教案
- 港口码头工程招投标保证
- 医院建筑工程招标与合同签订指南
- 医疗卫生项目招标指南
- 机械设备表面喷漆合同
- 2024年山东黄金集团有限公司招聘笔试参考题库附带答案详解
- 年轻干部优势分析报告
- 医院培训课件:《危重患者护理文书书写规范》
- 社区家庭教育活动指导方案
- 《浮点数计算方法》课件
- 苏州市2022-2023学年高二下学期期中考试化学试题(原卷版)
- 美术新课标培训课件
- 以冬奥会为主题创业计划书
- 企业合规与风险管理的法律责任与风险承担
- 面部年轻化的光电治疗
- 《温度传感器》课件
评论
0/150
提交评论