单片机指令教程

单片机指令教程

ID:22734053

大小:441.50 KB

页数:18页

时间:2018-10-31

单片机指令教程_第1页
单片机指令教程_第2页
单片机指令教程_第3页
单片机指令教程_第4页
单片机指令教程_第5页
资源描述:

《单片机指令教程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、51单机指令教程在介绍各条分类指令之前,将指令中的操作数及注释中的符号说明如下。RN:当前指定的工作寄存器组中的RO-R7(其中N=0,1,2,…,7)。RI:当前指定的工作寄存器组中的RO,R1(其中I=0,1)。(RI):RI间址寻址指定的地址单元。((RI)):RI间址寻址指定地址单元中的内容。DIR:8位直接字节地址(在片内RAM和SFR存储空间中)。#DATA8:8位立即数。#DATAL6:16位立即数。ADDRL6:16位地址值。ADDRLL:11位地址值。BIT:位地址(在位地址空间中)。REL:相对偏移量(一字节补码数)。

2、下面介绍各条分类指令的主要功能和操作,详细的指令操作说明及机器码形式可见附录。1数据传送与交换类指令共有28条指令,包括以A,RN,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指令;数据交换指令以及准栈操作指令。堆栈操作PUSHDIR;SP十1-6P,(DIR)一(SP)POPDIR;((SP))一DIR,SP-1--P,例1SP=07H,(35H)=55H,指令PUSH35H执行后,55H送入08H地址单元,SP=08H。例2SP=13H,(13H)=1FH,指令POP25H执行后,1F

3、H压入25H地址单元,SP此时为12H。综合例把片内RAM中50H地址单元中的内容与40H地址单元中的内容互换。方法一(直接地址传送法):MOVA,50H数据传送与交换类指令是各类指令中数量最多、使用最频繁的一类指令,编程时应能十分熟练地灵活运用2算术运算类指令共有24条指令,主要包括加、减、乘、除、增量、减量和十进制调整等指令。其中,大多数指令都同时以A为源操作数之一和目的操作数。1.加说明:借位位来自程序状态字PSW中的进位位C,只是在作减法运算时,被用作借位位。例A=38H,R1=20H,(20H)=23H,C=1指令SUBBA,@

4、R1执行后,A=14H。4.乘法MULAB;A×B-BA说明:本指令实现8位无符号乘法。A,B中各放一个8位乘数,指令执行后,16位积的高位在B中,低位在A中。例A=50H,B=40H,指令MULAB执行后,A=00H,B=32H5.除法DIVAB;A÷B-商在A中,余数在B中说明:本指令实现8位无符号除法。A放被除数,B放除数,指令执行后,A中为商,B中为余数。若除数B=00H,则指令执行后,溢出标志OV=1,且A,B内容不变。例1A=28H,B=12H,指令DIVAB执行后,A=02H,B=04H。例2A=08H,B=09H,指令DI

5、VAB执行后,A=00H,B=08H。综合例1把在R4和R5中的两字节数取补(高位在R4中)CLRCMOVA,R5CPLAINCAMOVR5,AMOVA,R4CPLAADDCA,#00HMOVR4,ASJMP$综合例2把R7中的无符号数扩大10D倍(设原数小于25D)MOVA,R7MOVB,#0AHMULABMOVR7,ASJMP$综合例3把R1R0和R3R2中的2个4位跃D数相加,结果送入R5R4中,如有进位则存于进位位C中。CLRCMOVA,R0ADDA,R2DAAMOVR4,AMOVA,R1ADDCA,R3DAAMOVR5,ASJM

6、P$在MCS-51系列单片机的算术运算类指令中,乘除法指令是许多8位微处理器和一些8位单片机所没有的,执行时间为4个机器周期。这种指令对编制比较复杂的运算程序,例如,比例-积分-微分(PID)运算、浮点运算、多字节数乘除运算等是经常要用到的。3逻辑运算与循环类指令共有24条指令。逻辑运算指令主要包括逻辑"与"、"或"、"异或"、求反和清零;循环指令则都是对A的大循环操作,包括有左、右方向以及带与不带进位位的不同循环方式。例A=16H,指令RRA执行后,A=0BH。综合例把R2R3中的16位补码数(高位在R2中)右移一位,并不改变符号。MO

7、VA,R2MOVC,ACC.7;把符号位存入进位位CRRCAMOVR2,AMOVA,R3RRCAMOVR3,ASJMP$4子程序调用与转移类指令共有14条指令。子程序调用类有绝对调用和长调用两种;转移类分为无条件转移和条件转移两组。无条件转移包括绝对转移、长转移、短转移和间接转移;条件转移包括结果为零、结果为非零、减一后结果为非零以及两数不相等的转移条件,它们全部采用相对转移的方式。绝对于程序调用和绝对转移指令的机器码形式比较特殊,操作码不是在前面而是在中间,并且调用和转移的范围都只在2K地址范围内,这在使用时应予以注意。1.绝对调用AC

8、ALLADDRLL;ADDRLL一PC0-10,PC11-16不变说明:①调用范围本指令在2K地址范围内的子程序调用。本指令实现的操作将不改变原PC的高5位(PC1L-15),仅把11位地址A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。