欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机原理及应用第三章课件.ppt

    • 资源ID:70262053       资源大小:406.51KB        全文页数:97页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机原理及应用第三章课件.ppt

    第三章第三章MCS51单片微机的指令系统单片微机的指令系统 3.1 MCS513.1 MCS51指令及其表示方法指令及其表示方法 指令系统是根据单片机硬件电路确定的一组操作编码,指令系统是根据单片机硬件电路确定的一组操作编码,每一条指令完成一个特定的操作。指令系统设计是单片机每一条指令完成一个特定的操作。指令系统设计是单片机设计的一个组成部分,芯片制造厂在推出单片机的同时也设计的一个组成部分,芯片制造厂在推出单片机的同时也要提供指令系统,我们为了使用单片机就必须了解和熟悉要提供指令系统,我们为了使用单片机就必须了解和熟悉其指令系统。本节介绍指令的格式,指令的字节数等基本其指令系统。本节介绍指令的格式,指令的字节数等基本知识。知识。一、机器语言指令与汇编语言指令一、机器语言指令与汇编语言指令 和一般的微机一样,指令具有两级形式,即机器语言指令和一般的微机一样,指令具有两级形式,即机器语言指令和汇编语言指令,指令的集合便是程序。例如作和汇编语言指令,指令的集合便是程序。例如作10+2010+20的运算的运算可采用下列二进制机器语言程序可采用下列二进制机器语言程序 :01110100B 00001010B 1601110100B 00001010B 16进制表示为进制表示为74H 0AH74H 0AH 00100100B 00010100B 00100100B 00010100B 24H 14H24H 14H 为了使用方便,用助记符来表示操作性质,并规定一定为了使用方便,用助记符来表示操作性质,并规定一定的书写格式,这样就形成了汇编语言级的指令和程序,例如的书写格式,这样就形成了汇编语言级的指令和程序,例如上述程序的汇编语言形式为:上述程序的汇编语言形式为:MOV AMOV A,#0AH#0AHADD AADD A,#14H#14H操作码操作数 上述程序中上述程序中MOVMOV为助记符,表示操作的性质是数据传送,助为助记符,表示操作的性质是数据传送,助记符后面的符号记符后面的符号A A为累加器为累加器ACCACC,是数据传送的是数据传送的“目的目的”地址地址(地址为符号地址),(地址为符号地址),#0AH#0AH中前缀中前缀#表示表示0AH0AH为数据,处于此为数据,处于此位置的数据或符号(或不带位置的数据或符号(或不带#的数)是数据传送的的数)是数据传送的“源源”(或(或“源源”地址)。第二条指令的地址)。第二条指令的ADDADD表示加法操作。根据上例可知,表示加法操作。根据上例可知,汇编语言指令的格式为:汇编语言指令的格式为:标号:助记符标号:助记符 操作对象操作对象 指令中的操作对象可以是寄存器名、存贮器地址、数据指令中的操作对象可以是寄存器名、存贮器地址、数据(带有前缀(带有前缀#等),等),操作对象可以是操作对象可以是1 1个或个或2 2个、个、3 3个个,例如上例,例如上例中两条指令均为两个操作对象,第一个为目的操作对象,第二中两条指令均为两个操作对象,第一个为目的操作对象,第二个为源操作对象。个为源操作对象。由于汇编语言指令不是机器代码,故编制好汇编语言程序后,由于汇编语言指令不是机器代码,故编制好汇编语言程序后,还需要再翻译成还需要再翻译成机器语言程序(称目标程序),机器语言程序(称目标程序),然后才能输入到然后才能输入到计算机的存贮器中去执行。机器语言程序主要由数码组成,它包计算机的存贮器中去执行。机器语言程序主要由数码组成,它包含两种不同性质的编码,一种是表示操作性质的数码含两种不同性质的编码,一种是表示操作性质的数码操作码,操作码,另一种为表示某个数(或地址)的编码另一种为表示某个数(或地址)的编码操作数,所以机器语操作数,所以机器语言指令的格式为:言指令的格式为:地址地址 操作码操作码 操作数(操作数(0202个)个)例如上述机器码程序例如上述机器码程序74H74H、24H24H为操作码,为操作码,0AH0AH、14H14H为操作为操作数,汇编语言指令与机器语言指令具有完全确定的关系,二者可数,汇编语言指令与机器语言指令具有完全确定的关系,二者可以互相转换。以互相转换。二、指令的格式二、指令的格式 指令是完成一种特定操作的命令。指令是完成一种特定操作的命令。一条指令由一个操作一条指令由一个操作码和几个操作数组成,其中操作数可以是码和几个操作数组成,其中操作数可以是0202个,在计算机中个,在计算机中以以8 8位二进制码为一个字节,各种编码均以字节为单位(即位二进制码为一个字节,各种编码均以字节为单位(即1616进制的进制的2 2位数)。位数)。单字节指令:单字节指令:双字节指令:双字节指令:三字节指令:三字节指令:操作码操作码操作数操作码第1操作数第2操作数二、指令的格式二、指令的格式 例如:例如:操作内容操作内容 汇编语言汇编语言 机器语言指令机器语言指令 累加器内容加累加器内容加1 INC A 000001001 INC A 00000100(04H04H)累加器内容取反累加器内容取反 CPL A 01011000CPL A 01011000(18H18H)MOV A MOV A,RnRn(n=07n=07););机器码为机器码为11101rrrb11101rrrb 式中式中 rrrrrr为为0707的二进制码的二进制码 MOV data MOV data,#data#data ;机器码为机器码为 75H75H datadata#data#data操作码操作码第一操作数第二操作数3.2 3.2 寻址方式寻址方式一、指令系统中使用的符号一、指令系统中使用的符号AA累加器;累加器;BB乘、除运算寄存器,亦可当作一般寄存器使用;乘、除运算寄存器,亦可当作一般寄存器使用;RnRn工作寄存器工作寄存器n=07n=07;RiRi用于存放地址的工作寄存器用于存放地址的工作寄存器i=0i=0,1 1,亦称亦称8 8位地址指位地址指针;针;DPTR16DPTR16位数据(地址)指针(由位数据(地址)指针(由DPHDPH,DPLDPL两个寄存器组两个寄存器组成),存放成),存放1616位地址;位地址;以寄存器的内容为地址的前缀;以寄存器的内容为地址的前缀;rrrrrr:R0R7:R0R7对应的对应的rrrrrr为为000111000111;dirdir(directdirect或或data)data)单片机内地址为单片机内地址为dirdir(directdirect或或data)data)的通用寄存器;的通用寄存器;#data8#data8位的数据;位的数据;#data1616#data1616位的数据;位的数据;SPSP堆栈指针,其内容为堆栈栈顶的地址;堆栈指针,其内容为堆栈栈顶的地址;bitbit位操作中的一个位操作中的一个“位位”;CPSWCPSW中的最高位,亦称位累加器;中的最高位,亦称位累加器;addr1111addr1111位地址;位地址;addr1616addr1616位地址;位地址;relrel相对地址;相对地址;(X X)以以X(R0,R1,DPTRX(R0,R1,DPTR,dirdir等等)的内容为地址的该单元内的内容为地址的该单元内容;容;其它其它特殊功能寄存器符号及其内部的特殊功能寄存器符号及其内部的“位位”符号符号。二、寻址方式二、寻址方式 计算机的各种操作都涉及到寄存器和存贮器,它们分计算机的各种操作都涉及到寄存器和存贮器,它们分布在片内和片外,数量很多,因此指令中必须明确指明是布在片内和片外,数量很多,因此指令中必须明确指明是哪一个寄存器或哪一个存贮单元,哪一个寄存器或哪一个存贮单元,寻址方式就是在指令中寻址方式就是在指令中给出的寻找操作数或操作数所在地址的方法。给出的寻找操作数或操作数所在地址的方法。执行任何一执行任何一条指令都需要使用操作数。条指令都需要使用操作数。MCS51MCS51系列单片微机指令系系列单片微机指令系统中共有以下统中共有以下7 7种寻址方式。种寻址方式。1.1.立即寻址立即寻址 立即寻址是指在指令中直接给出参与操作的数,出现立即寻址是指在指令中直接给出参与操作的数,出现在指令中的这种操作数称为在指令中的这种操作数称为立即数立即数,这种寻址方式称为立,这种寻址方式称为立即寻址。为了与直接寻址指令中的直接地址相区别,在立即寻址。为了与直接寻址指令中的直接地址相区别,在立即数前面必须加上前缀即数前面必须加上前缀“#”#”。例如:指令例如:指令 MOV DPTRMOV DPTR,#1234H#1234H 其中其中1234H1234H就是立即数,指令功能是把就是立即数,指令功能是把1616位立即数位立即数1234H1234H送入数据指针送入数据指针DPTRDPTR中。中。1.1.立即寻址立即寻址例如:指令例如:指令 MOV DPTRMOV DPTR,#1234H#1234H 机器语言指令机器语言指令:90 12 3490 12 34程序存储器程序存储器901234PCPCPC+1PC+1PC+2PC+2特殊功能寄存器特殊功能寄存器DPHDPHDPLDPL12342.2.直接寻址直接寻址 直接寻址是指在指令中直接给出直接寻址是指在指令中直接给出操作数单元的地址操作数单元的地址。例如:指令例如:指令 MOV AMOV A,3AH3AH 其功能是把片内其功能是把片内RAMRAM中中3AH3AH单元内的数据传送给累加器单元内的数据传送给累加器A A。直接寻址方式只能给出直接寻址方式只能给出8 8位地址,因此这种寻址方式的寻址位地址,因此这种寻址方式的寻址范围只限于片内范围只限于片内RAMRAM。具体地说:具体地说:(1 1)低低128128单元单元,在指令中直接以单元地址形式给出。,在指令中直接以单元地址形式给出。(2 2)特殊功能寄存器特殊功能寄存器,这时除可以单元地址形式给出外,这时除可以单元地址形式给出外,还可以寄存器符号形式给出。虽然特殊功能寄存器可以使用还可以寄存器符号形式给出。虽然特殊功能寄存器可以使用符号标志,但在指令代码中还是按地址进行编码的。符号标志,但在指令代码中还是按地址进行编码的。例如:指令例如:指令 MOV A,B;MOV A,F0H;MOV A,B;MOV A,F0H;2.2.直接寻址直接寻址 (3)(3)位地址空间。位地址空间。特殊功能寄存器和位地址空间只能用直接寻址方式来访特殊功能寄存器和位地址空间只能用直接寻址方式来访问。问。例:指令:例:指令:MOV A,45H;MOV A,45H;机器代码:机器代码:E5 45E5 45程序存储器程序存储器E545PCPCPC+1PC+1片内片内RAMRAMXX45HXXA A3.3.寄存器寻址寄存器寻址 寄存器寻址是指在指令中寄存器寻址是指在指令中将指定寄存器的内容作为操作数。将指定寄存器的内容作为操作数。因此指定了寄存器就能得到操作数。因此指定了寄存器就能得到操作数。寄存器寻址方式中,用符号名称来表示寄存器。寄存器寻址方式中,用符号名称来表示寄存器。例如:指令例如:指令INC R0INC R0 其功能是把寄存器其功能是把寄存器R0R0的内容加的内容加1 1,再送回,再送回R0R0中。由于操作中。由于操作数在数在R0R0中,指定了中,指定了R0R0,也就得到了操作数。也就得到了操作数。寄存器寻址方式的寻址范围包括:寄存器寻址方式的寻址范围包括:(1 1)在指令中只能使用)在指令中只能使用当前寄存器组当前寄存器组。因此在使用中要通。因此在使用中要通过指定过指定PSWPSW中的中的RS1RS1、RS0RS0,以选择使用的当前寄存器组。以选择使用的当前寄存器组。(2 2)部分特殊功能寄存器部分特殊功能寄存器。例如。例如累加器累加器A A、B B寄存器、寄存器、C CY Y以以及数据指针及数据指针DPTRDPTR。3.3.寄存器寻址寄存器寻址 例如:指令例如:指令 MOV AMOV A,R3R3;机器代码:机器代码:EBEB 设累加器设累加器A A 的内容为的内容为28H28H,R3R3的内容为的内容为58H58H。PSWPSW中中RS1RS1,RS0RS0分别为:分别为:1 1、0 0。则。则R3R3的地址为的地址为13H13H。程序存储器程序存储器EBPCPC片内片内RAMRAM58 13H(R3)28 HA A58H4.4.寄存器间接寻址寄存器间接寻址 寄存器间接寻址是指在指令中寄存器间接寻址是指在指令中给出的寄存器内容是操作数的给出的寄存器内容是操作数的地址地址,从该地址中取出的才是操作数。寄存器间接寻址也需以寄,从该地址中取出的才是操作数。寄存器间接寻址也需以寄存器符号名称的形式表示,为了区别寄存器寻址和寄存器间接寻存器符号名称的形式表示,为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址中,应在寄存器的名称前面加前缀址,在寄存器间接寻址中,应在寄存器的名称前面加前缀“”。例如:指令例如:指令 MOV A,R0;机器代码机器代码 E6 程序存储器程序存储器片内片内RAMRAM5E 00H(R0)XXA AE6PCPC5EHXX寄存器间接寻址的寻址范围:寄存器间接寻址的寻址范围:(1 1)片内片内RAMRAM的低的低128128单元单元,只能采用,只能采用R0R0或或R1R1作为间址寄存作为间址寄存器,其形式为器,其形式为Ri(iRi(i=0=0,1)1),例:例:MOV A,R0;(2 2)片外片外RAMRAM的的64KB64KB单元单元,使用,使用DPTRDPTR作为间址寄存器,其形作为间址寄存器,其形式为式为DPTRDPTR,例如:例如:MOVX AMOVX A,DPTR,DPTR,其功能是把其功能是把DPTRDPTR指定的片指定的片外外RAMRAM单元的内容送累加器单元的内容送累加器A A。(3 3)片外片外RAMRAM的的256256单元单元,除了可使用,除了可使用DPTRDPTR作为间址寄存器作为间址寄存器外,也可使用外,也可使用R0R0或或R1R1作间址寄存器。例如作间址寄存器。例如MOVX AMOVX A,R0;R0;(4 4)堆栈区:堆栈区:堆栈操作指令(堆栈操作指令(PUSHPUSH和和POPPOP)也应算作是寄存也应算作是寄存器间接寻址,即以堆栈指针(器间接寻址,即以堆栈指针(SPSP)作间址寄存器的间接寻址方作间址寄存器的间接寻址方式。式。5.5.变址寻址变址寻址 变址寻址是指以变址寻址是指以DPTRDPTR或或PCPC作基址寄存器作基址寄存器,累加器累加器A A作变址作变址寄存器寄存器,以两者内容相加,形成的,以两者内容相加,形成的1616位程序存储器地址作为位程序存储器地址作为操作数地址,又称操作数地址,又称基址寄存器基址寄存器+变址寄存器间接寻址变址寄存器间接寻址。有效地址有效地址=基址寄存器基址寄存器PCPC(或(或DPTRDPTR)+A+A 例如:指令例如:指令 MOVC A,MOVC A,A+DPTRA+DPTR 机器代码机器代码 93 93 假定指令执行前(假定指令执行前(A A)=54H=54H,(DPTRDPTR)=1256H=1256H 变址寻址形成的操作数地址为变址寻址形成的操作数地址为1256H+54H=12AAH1256H+54H=12AAH,若,若12AAH12AAH单元的内容为单元的内容为00H00H,则该指令执行的结果是则该指令执行的结果是A A的内容为的内容为00H00H。程序存储器程序存储器54A A93PCPCSFRSFR56DPLDPH121256H54H12AAH12AAH0000例如:指令例如:指令 MOVC A,A+DPTR 机器代码机器代码 93 变址寻址指令有:变址寻址指令有:MOVC A,A+DPTR;(A+DPTR)A MOVC A,A+PC;PC+1 PC,(,(A+PC)A JMP A+DPTR;(A+DPTR)PC 变址寻址方式用于查表操作。变址寻址方式用于查表操作。6.6.相对寻址相对寻址 相对寻址是仅用于相对转移指令的一种寻址方式。与其他相对寻址是仅用于相对转移指令的一种寻址方式。与其他寻址方式不同,这种寻址方式是要寻找指令地址,即寻找下一寻址方式不同,这种寻址方式是要寻找指令地址,即寻找下一条要执行指令的地址。相对寻址的有效地址条要执行指令的地址。相对寻址的有效地址D D(目的地址)为:目的地址)为:D=D=PC+relPC+rel PC PC的当前值称为源地址,它是相对转移指令操作码的地址;的当前值称为源地址,它是相对转移指令操作码的地址;relrel是相对地址是相对地址,它是目的地址与源地址的差值。,它是目的地址与源地址的差值。相对地址的机器码称为偏移量,记为相对地址的机器码称为偏移量,记为dispdisp,它与它与relrel的关系的关系是:是:dipsdipsrel-brel-b 目的地址目的地址=源地址源地址+转移指令字节数转移指令字节数+dips+dips 若转移指令为若转移指令为2 2字节,则字节,则b b2 2;若转移指令为若转移指令为3 3字节,则字节,则b=3b=3。偏移量为一字节二进制补码数,取值范围为偏移量为一字节二进制补码数,取值范围为-128-128一一+127+127。相对。相对地址取值范围为地址取值范围为-126+129-126+129。在源程序中,相对地址。在源程序中,相对地址relrel一般一般用标号表示。用标号表示。6.6.相对寻址相对寻址例如:指令例如:指令 JC 18H JC 18H ;设;设C CY Y=1=1,操作码的地址为操作码的地址为1000H1000H。机器代码机器代码 40 1640 16 程序存储器程序存储器161001H1000PCPC1000H4016H1000H+21018H1018H1018H6.6.相对寻址相对寻址 例:例:设有如下一段程序,试写出与设有如下一段程序,试写出与JNZ RET0JNZ RET0相对应的机器相对应的机器代码。代码。地址地址 机器代码机器代码 标号标号 源程序源程序 0152H 70 XX JNZ RET0(A0,PC 016CH)016CH DO E0 RET0:POP A解:源地址解:源地址=0152H=0152H,目的地址目的地址=016CH=016CHrelrel=D-PC=016CH-0152H=1AH=D-PC=016CH-0152H=1AHdispdisp=rel-2=1AH-2=18H=rel-2=1AH-2=18H186.6.相对寻址相对寻址 例:例:设有如下一段程序,试写出与设有如下一段程序,试写出与DJNZ R7,ML2相对应相对应的机器代码。的机器代码。地址地址 机器代码机器代码 标号标号 源程序源程序 0110H CO DO ML2:PUSH PSW 011BH DF XX DJNZ R7,ML2解:源地址解:源地址=011BH ,目的地址目的地址=0110H rel=D-PC=0110H-011BH=-0BH-0BH补补=F5Hdisp=rel-2=F5H-2=F3HF37.7.位寻址位寻址 80518051有位处理功能,可以对数据位进行操作,因此就有相有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式,位寻址的寻址范围:应的位寻址方式,位寻址的寻址范围:(1 1)RAMRAM中的位寻址区中的位寻址区 片内片内RAMRAM中的单元地址中的单元地址20H-2FH20H-2FH,共,共1616个单元个单元128128位,为位位,为位寻址区,位地址是寻址区,位地址是00H-7FH00H-7FH。对这对这128128个位的寻址使用直接位个位的寻址使用直接位地址表示。地址表示。例如例如 MOV C,2BH MOV C,2BH 指令的功能是把位寻址区的指令的功能是把位寻址区的2BH2BH位的值送位的值送累加位累加位C C。SETB 3AHSETB 3AH;(给;(给3A3A位置位置1 1)(2 2)可位寻址的特殊功能寄存器位可位寻址的特殊功能寄存器位 可供位寻址的特殊功能寄存器共有可供位寻址的特殊功能寄存器共有1111个,有寻址位个,有寻址位8383位。位。3.3 3.3 指令系统指令系统 MCS51MCS51的指令系统,共有的指令系统,共有111111条指令,按其功能可分条指令,按其功能可分为五大类:为五大类:(1 1)数据传送类指令()数据传送类指令(2828条)条)(2 2)算术运算类指令()算术运算类指令(2424条)条)(3 3)逻辑运算类指令()逻辑运算类指令(2525条)条)(4 4)控制转移类指令()控制转移类指令(1717条)条)(5 5)布尔操作(位)类指令()布尔操作(位)类指令(1717条)。条)。3.3.1 3.3.1 数据传送类指令数据传送类指令 一、片内数据传送指令一、片内数据传送指令 片内数据传送指令的助记符为片内数据传送指令的助记符为MOVMOV,大部分的传送方式都大部分的传送方式都是双向的,现以目的寄存器为序列列出如下:是双向的,现以目的寄存器为序列列出如下:1.1.以累加器以累加器A A为目的操作数的指令组为目的操作数的指令组 指令指令 操作内容操作内容 MOV A,Rn;ARn MOV A,direct;A(direct)MOV A,Ri;A(Ri)MOV A,#data;Adata1.1.以累加器以累加器A A为目的操作数的指令组为目的操作数的指令组例例:R1=20H,(,(20H)=55H;MOV A,R1执行后,执行后,A=55H。例:已知例:已知A=40H,R6=50H,(,(6FH)=32H,R0=18H,(18H)=10H,执行下列程序段执行下列程序段:MOV A,R6 ;A 50H MOV A,6FH ;A (6FH)MOV A,R0 ;A (R0)执行后,执行后,A=10H。2.2.以工作寄存器以工作寄存器RnRn为目的操作数的指令组为目的操作数的指令组 指令指令 操作内容操作内容 MOV Rn,A ;RnA MOV Rn,direct ;Rn(direct)MOV Rn,#data ;Rndata 这组指令的功能是把源操作数的内容送入当前工作寄存这组指令的功能是把源操作数的内容送入当前工作寄存器区的器区的R0-R7R0-R7中的某一个寄存器,源操作数有寄存器寻址、直中的某一个寄存器,源操作数有寄存器寻址、直接寻址和立即寻址等寻址方式。接寻址和立即寻址等寻址方式。例:已知例:已知A=3FHA=3FH,(,(4EH4EH)=2FH=2FH,R1=20HR1=20H,R3=30HR3=30H,执行下执行下列程序段:列程序段:MOV A,#2EH ;A 2EH MOV R1,A ;R1 A MOV R2,4EH ;R2 (4EH)MOV R3,#6FH ;R3 6FH 执行后,执行后,A=2EH,R2=2FH,R3=6FH3.3.以直接地址以直接地址directdirect为目的操作数的指令组为目的操作数的指令组 指令指令 操作内容操作内容 MOV direct,A ;(direct)A MOV direct,Rn ;(direct)Rn MOV direct1,direct 2 ;(direct1)(direct2)MOV direct,Ri ;(direct)(Ri)MOV direct,#data ;(direct)data 这组指令的功能是把源操作数的内容送入由直接地址这组指令的功能是把源操作数的内容送入由直接地址指出的存储单元。源操作数有寄存器寻址、直接寻址、寄指出的存储单元。源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址等寻址方式。存器间接寻址和立即寻址等寻址方式。例如:例如:MOV AMOV A,80H 80H ;表示把片内表示把片内RAMRAM中地址为中地址为80H80H单元(即单元(即P1P1口)中的内容送口)中的内容送A A。MOV 80HMOV 80H,#88H#88H ;表示把立即数表示把立即数88H88H送到片内送到片内RAMRAM中的中的80H80H地址单元中去。地址单元中去。MOV 80HMOV 80H,E0H E0H;表示把表示把E0HE0H单元的内容送到单元的内容送到80H80H单元中去。这是片内数单元中去。这是片内数据存储单元中的直接地址单元之间数据的直接传送。据存储单元中的直接地址单元之间数据的直接传送。4 4间接地址为目的操作数的指令间接地址为目的操作数的指令 指令指令 操作内容操作内容 MOV Ri,A ;(Ri)A MOV Ri,direct ;(Ri)(direct)MOV Ri,#data ;(Ri)data 例:例:A=30H,R1=40H,MOV R1,A;执行后执行后,(40H)=30H。二、二、1616位数目标地址传送指令位数目标地址传送指令 MOV DPTR,#data16;该指令把该指令把1616位常数装入数据指针位常数装入数据指针DPTRDPTR,即数据高八位即数据高八位送入送入DPHDPH寄存器,数据低八位送入寄存器,数据低八位送入DPLDPL寄存器。寄存器。1616位常数在位常数在指令的第二、第三字节中(第二字节为高位字节指令的第二、第三字节中(第二字节为高位字节DPHDPH,第第三字节为低位字节三字节为低位字节DPLDPL)。)。此操作不影响标志位。此操作不影响标志位。例:执行指令例:执行指令 MOV DPTRMOV DPTR,#1234H#1234H 执行结果:(执行结果:(DPHDPH)=12H=12H,(DPLDPL)=34H=34H三、堆栈操作指令三、堆栈操作指令PUSH direct:SPSP+1,(SP)(direct)POP direct:(direct)(SP),SP SP-1例如:设SP=30H,(50H)=80H,指令如下:PUSH 50H ;SP SP+1,(31H)(50H)POP 40H ;(40H)(31H),SP SP-1 程序执行过程中如图所示。四、查表指令四、查表指令 MOVC A,A+PC ;PC PC+1,A (A+PC)MOVC A,A+DPTR ;A (A+DPTR)例如,在程序存储器中,数据表格为:例如,在程序存储器中,数据表格为:1010H:01 1011H:02 1012H:03执行程序:执行程序:1000H:MOV A,#0DH ;A 0DH1002H:MOVC A,A+PC ;A(0DH+1003H)结果:结果:A=01H,PC=1003H。例例如如:在在程程序序存存储储器器中中,数数据据表表格格为为:2 0 0 0 H:01H 2 0 0 1 H:2 3 H 2 0 0 2 H:4 5 H 2 0 0 3 H:6 7 H 执执行行程程序序:1 0 0 0 H:M O V A,#0 3 H 1002H:MOV DPTR,#2000H 1005H:MOVC A,A+DPTR 结结 果果:A=67H,DPTR=2000H。五、片外数据传送指令五、片外数据传送指令 片外数据传送指令的助记符为片外数据传送指令的助记符为MOVXMOVX,片外数据传送必片外数据传送必须使用累加器须使用累加器A A,另一操作对象采用间接寻址方式。另一操作对象采用间接寻址方式。指令指令 操作内容操作内容 MOVX A,Ri ;A (Ri)MOVX A,DPTR ;A(DPTR)MOVX Ri,A ;(Ri)A MOVX DPTR,A ;(DPTR)A例如:例如:DPTR=2000H,(2000H)=18H 指令指令 MOVX A,DPTR;执行后 A=18H 例如,把片内例如,把片内RAM40HRAM40H单元中内容送到片外单元中内容送到片外RAM 2000HRAM 2000H单元中单元中去。程序如下:去。程序如下:MOV A,40H ;A(40H)MOV DPTR,#2000H ;DPTR2000H MOVX DPTR,A ;(2000H)A例如,把片外例如,把片外RAM2100HRAM2100H单元内容传送单元内容传送2120H2120H 单元中去,程序如下:单元中去,程序如下:MOV DPTR,#2100H MOVX A,DPTR MOV DPTR,#2120H MOVX DPTR,A六、交换指令六、交换指令 1 1、字节交换指令、字节交换指令 XCH A,Rn ;A Rn XCH A,direct ;A (direct)XCH A,Ri ;A (Ri)上述指令的功能是,将累加器上述指令的功能是,将累加器A A的内容与源操作数所指出的内容与源操作数所指出的数据互相交换。的数据互相交换。例如,已知例如,已知R0=10H,A=4EH,(,(10H)=5FH;执行指令:执行指令:XCH A,R0;结果:结果:A=5FH,(,(10H)=4EH。2 2、半字节交换指令、半字节交换指令 XCHD A,Ri ;A.3-A.0 (Ri.3-Ri.0)该指令的功能是,将累加器该指令的功能是,将累加器A A中低中低4 4位与位与RiRi间接寻址单元内容的低间接寻址单元内容的低4 4位相互交位相互交换,而各自的高换,而各自的高4 4位内容不变。位内容不变。例如,已知例如,已知R0=10H,A=35H,片内片内RAM(10H)=46H;执行指令:执行指令:XCHD A,R0;结果:结果:A=36H,(,(10H)=45H。3 3、累加器累加器A A的高的高4 4位与低位与低4 4位内容互换指令位内容互换指令 SWAP A ;A.3-A.0 A.7-A.4 该指令的功能是,将该指令的功能是,将A A的高、低两半字节相互交换。的高、低两半字节相互交换。例:设例:设A=86H,程序如下:程序如下:MOV R3,#4FH ;R3 4FH XCH A,R3 ;A R3 SWAP A ;A.7-A.4 A.3-A.0 XCH A,R3 ;A R3 结果:结果:A=86H,R3=F4H3.3.2 3.3.2 算术运算类指令算术运算类指令 MCS51MCS51算术运算指令,主要是对算术运算指令,主要是对8 8位无符号二进制数位无符号二进制数进行进行加法、减法、乘法和除法加法、减法、乘法和除法四则运算;四则运算;增增1 1、减、减1 1运算;运算;可以实现对可以实现对压缩压缩BCDBCD码加减运算码加减运算和对带符号二进制数进行和对带符号二进制数进行2 2的的补码运算补码运算。算术运算指令共有算术运算指令共有2424条。在加法、带进位加法和带借条。在加法、带进位加法和带借位减法的指令中,累加器位减法的指令中,累加器A A中总是存放目的操作数,并存中总是存放目的操作数,并存放操作的中间结果;而源操作数则可以是立即数、工作寄放操作的中间结果;而源操作数则可以是立即数、工作寄存器内容、间接或直接寻址片内存器内容、间接或直接寻址片内RAMRAM内容。这些指令都影内容。这些指令都影响程序状态字响程序状态字PSWPSW的进位位的进位位C C、溢出位溢出位OVOV、半进位位半进位位ACAC和奇和奇偶标志位偶标志位P P。仅当源操作数为仅当源操作数为A A时,加时,加1 1、减、减1 1指令才对标志指令才对标志位位P P有影响。乘法、除法指令影响标志位有影响。乘法、除法指令影响标志位OVOV和和P P。一、加法类指令一、加法类指令 1 1、加法指令(、加法指令(4 4条)条)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 A的的内容相加,其结果存放在累加器内容相加,其结果存放在累加器A A中中。例如,设例如,设A=85H,R0=20H,(20H)=9EH执行指令:执行指令:ADD A,R0;其操作如下:其操作如下:1000 0101 +)1001 1110 10010 0011结果:结果:A=23H、Cy=1、AC=1、OV=1、P=1。2 2、带进位加法指令(、带进位加法指令(4 4条)条)ADDC A,Rn ;A A+Rn+Cy ADDC A,direct ;A A+(direct)+Cy ADDC A,Ri ;A A+(Ri)+Cy ADDC A,#data ;A A+data+Cy 这是一组带进位的加法指令。其功能是,把源操作数所这是一组带进位的加法指令。其功能是,把源操作数所指出的内容和累加器指出的内容和累加器A A的内容以及进位标志的内容以及进位标志CyCy相加,结果存相加,结果存放在放在A A中。带进位加法指令常用于多字节加法运算。中。带进位加法指令常用于多字节加法运算。例如,设A=4EH,R0=20H,(20H)=9EH,Cy=1:执行指令:ADDC A,R0;其操作如下:0100 1110 1001 1110 +)1 1110 1101结果:A=EDH,Cy=0,AC=1,OV=0,P=0。3 3、加、加1 1指令(指令(5 5条)条)INC A ;A A+1 INC Rn ;Rn Rn+1 INC direct ;(direct)(direct)+1 INC DPTR ;DPTR DPTR+1 INC Ri ;(Ri)(Ri)+1 这组指令的功能是,把操作数所指定单元的内容加这组指令的功能是,把操作数所指定单元的内容加1 1。其操作除第。其操作除第一条指令影响奇偶标志位外,其余指令操作均不影响一条指令影响奇偶标志位外,其余指令操作均不影响PSWPSW。当用上述指令对并行当用上述指令对并行I/OI/O口的内容加口的内容加1 1时,其原来的数据不是从时,其原来的数据不是从I/OI/O口口的引脚上读入,而是从的引脚上读入,而是从I/OI/O口的输出锁存器中读入,加口的输出锁存器中读入,加1 1后仍保存于输出后仍保存于输出锁存器下,即对锁存器下,即对I/OI/O进行读进行读改改写操作。写操作。4.4.二二十进制调整指令(十进制调整指令(1 1条)条)DA ADA A;十进制修正十进制修正 这条指令的功能是,这条指令的功能是,对对BCDBCD码加法运算的结果自动进行修码加法运算的结果自动进行修正正,以便得到正确的,以便得到正确的BCDBCD码运算结果。码运算结果。如前所述,如前所述,0909的的BCDBCD码是用码是用4 4位二进制数(位二进制数(0000000010011001)表示的,进行加法运算时,两位)表示的,进行加法运算时,两位BCDBCD数之间应逢十进位。数之间应逢十进位。但是,计算机中加法运算都是按二进制规则进行的,所以对但是,计算机中加法运算都是按二进制规则进行的,所以对于用于用4 4位二进制数表示的位二进制数表示的1 1位位BCDBCD数实际上是逢十六进位,显然数实际上是逢十六进位,显然不符合十进制运算的要求,可能产生错误的结果。因此,在不符合十进制运算的要求,可能产生错误的结果。因此,在BCDBCD码加法运算后,必须进行十进制调整,这样才可以得到正码加法运算后,必须进行十进制调整,这样才可以得到正确的确的BCDBCD码结果。码结果。例如:设例如:设A=(00111000)BCD(即即38)data=(01001001)BCD(即(即49):):执行指令执行指令:ADD A,#data;其操作如下其操作如下:0011 1000 +)0100 1001 1000 0001 由于计算机中是按二进制进行运算的,由于计算机中是按二进制进行运算的,BCD码结果为码结果为81,这,这显然是错误的。如果在显然是错误的。如果在ADD A,#data;指令执行之后,再执行一指令执行之后,再执行一条指令条指令DA A;即即 1000 0001 +)0000 0110(+6修正修正)1000 0111 所得结果为所得结果为87,即调整后得到的,即调整后得到的BCD码结果是正确的。码结果是正确的。DA A;指令的指令的操作过程操作过程是:测试累加器是:测试累加器A A的的低低4 4位位及辅助进位位及辅助进位位ACAC,若,若A A中的中的低低4 4位值大于位值大于9 9或或AC=1AC=

    注意事项

    本文(单片机原理及应用第三章课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开