欢迎来到天天文库
浏览记录
ID:50472235
大小:1.70 MB
页数:83页
时间:2020-03-09
《单片机应用技术(汇编语言) 教学课件 作者 郑晖晖课题二.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、任务1数据传送类指令的应用任务2算术运算类指令的应用任务3控制转移类指令和位操作类指令的应用任务4逻辑运算类指令的应用任务1数据传送类指令的应用1.掌握MCS-51单片机的寻址方式。2.掌握数据传送类指令的功能及用法。将LED0~LED7八只发光二极管接在单片机的P1.0~P1.7,如图所示。编程实现如下功能,并在Protues软件中进行仿真。1.分别运用立即数寻址、直接寻址、寄存器寻址和寄存器间接寻址方式结合数据传送指令实现LED0、LED2、LED4、LED6亮,LED1、LED3、LED5、LED7灭。2.运用交换指令实现LED0、LED1、L
2、ED2、LED3亮,LED4、LED5、LED6、LED7灭。一、指令的格式一条指令通常由操作码和操作数两部分组成。操作码是用来规定指令所完成的操作的,而操作数则表示操作的对象。在51系列的指令中,有单字节、双字节和三字节等不同长度的指令。1.单字节指令指令只有一个字节,操作码和操作数在同一个字节中。在51系列的指令系统中,共有49条单字节指令。[例]INCA2.双字节指令双字节指令包括两个字节。其中一个字节为操作码,另一个字节为操作数。在51系列的指令系统中,共有45条双字节指令。[例]MOVA,#data3.三字节指令在三字节指令中,操作码占一个
3、字节,操作数占两个字节,其中操作数既可能是数据,也可能是地址。在51系列的指令系统中,共有17条三字节指令。[例]CJNEA,#data,rel汇编语言指令基本格式见下表:标号:操作码助记符操作数1,操作数2,操作数3;注释LOOP:MOVA,30H---;A(30)MAIN:INCA------;AA+1DELAY:CJNEA,#30H,LOOP;比较指令二、常用符号与助记符◆Rn:工作寄存器中的寄存器Rn,R1…R7之一。◆Ri:工作寄存器中的寄存器R0或R1。◆#data:8位立即数。◆#data16:16位立即数。◆direct:片内RA
4、M或SFR的地址(8位)。◆@Ri(i=0,1):间接寻址寄存器。◆Bit:片内RAM或SFR的位地址。1.常用符号◆addr11:11位目的地址。◆addr16:16位目的地址。◆rel:补码形式的8位地址偏移量,偏移范围为-128~127。◆/:位操作指令中,该位求反后参与操作,不影响该位。◆X:片内RAM的直接地址或寄存器。◆(X):相应地址单元中的内容。◆((X)):由X寻址的单元中的内容。◆←:箭头右边的内容传送到箭头的左边。2.助记符助记符用于规定指令进行何种操作,共42种,一般由2~5个英文字母组成。常用助记符及其功能见下表:助记符常见
5、格式功能MOVA,R0对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送MOVXA,@R0对外部RAM的数据进行传送MOVCA,@A+DPTR程序存储器内容与其他存储单元间数据进行传送XCHA,R0字节交换XCHDA,@R0低半字节交换助记符常见格式功能SWAPA低4位与高4位交换PUSHA入栈POPA出栈SETBC置1CLRC清0ANLA,R0逻辑与JNZLOOPA不为0则转移(续表)三、MCS—51单片机的寻址方式1.立即寻址寻址方式是指某一个CPU指令系统中规定的寻找操作数所在地址的方式。立即寻址即直接在指令中给出操作数,一般把指令中的
6、操作数称为立即数。为了与直接寻址相区别,在操作数前加“#”表示。[例]MOVA,#30H;A30HMOVDPTR,#40H;DPTR40H[例]MOVA,30H;A(30H)MOV40H,30H;(40H)(30H)2.直接寻址直接寻址就是在指令中给出操作数的地址。3.寄存器寻址寄存器寻址就是将寄存器中的内容作为操作数,寄存器一般指累加器A或工作寄存器R0~R7。[例]MOVA,Rn;A(Rn)MOVRn,A;Rn(A)MOVB,A;B(A)[例]MOVA,@Ri;A((Ri))4.寄存器间接寻址5.变址寻址[例]MOVCA,@A+D
7、PTR;A((A)+(DPTR))MOVCA,@A+PC;A((A)+(PC))寄存器间接寻址就是以寄存器中的内容作为地址,将该地址内的数作为操作数。变址寻址用于访问程序存储器中的数据表格,它以基址寄存器(DPTR或PC)的内容为基本地址,加上变址寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。[例]JNZ60H;A=0PCPC+2;A≠0PCPC+60H6.相对寻址相对寻址是以程序计数器PC的当前值作为基地址,与指令中给出的相对偏移量rel进行相加,把所得之和作为程序的转移地址。转移的范围为-128~+127,使用中应注意rel
8、的范围不要超出。该指令中60H为偏移量,偏移量为一个8位有符号数,其取值范围在-128~+127之间,所以程
此文档下载收益归作者所有