版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MCS-51单片机的指令系统 与程序设计,第三章,3.1 MCS-51单片机指令系统概述, 什么是指令?, 指令是供用户使用的单片机的软件资源。, 指令是程序员与单片机沟通的语言。, 指令的分类:, 按照指令占用的存储器字节数:,单字节指令,双字节指令,三字节指令, 按照指令执行所需时间:,单周期指令,双周期指令,四周期指令, 按照指令的功能:,数据传送指令(28条),算术运算指令(24条),逻辑操作与循环移位指令(25条),控制转移指令(17条),位操作指令(17条),3.1 MCS-51单片机指令系统概述, 指令的表示形式:,二进制形式,十六进制形式,助记符形式, 指令格式:,标号:,指令
2、助记符,操作数1,操作数2,操作数3,;注释, 什么是指令系统?,一种型号的CPU所能执行的指令的集合,叫做它的指令系统。,3.2 MCS-51单片机的寻址方式, 什么是寻址方式?,所谓寻址方式,就是CPU寻找操作数或者指令的方法。, 重要的符号约定:,Rn,Ri,direct,#data,#data16,addr11,addr16,bit,rel,DPTR,A,B,C,/,(),(),3.2 MCS-51单片机的寻址方式,1、立即寻址,特征:指令码中含有操作数本身,以“#”为标志。,操作过程:指令译码的同时获得操作数。,1 取指 从ROM中 取出指令码 (PC加1),2 译码 对指令码进行
3、翻译、解释,3 执行 执行指令规定 的相应功能,最简单的 寻址方式,3.2 MCS-51单片机的寻址方式,2、直接寻址,特征:,指令码中含有操作数的存储地址;,操作数存储在此地址指向的存储单元中;,操作过程:,1 根据译码得到的地址找到对应的存储单元,2 取出该存储单元中的数据,即为操作数,问题:那些存储单元可以使用直接寻址?,答:内部RAM DPTRdata16,说明:16位传送指令仅此一条,实际上是两次8位传送捆绑执行。,3.3 MCS-51单片机的指令系统,一、数据传送指令,1 一般传送指令,(2)8位传送指令,源字节与目的字节不能相同;,立即数只能作源操作数,不能作目的操作数;,工作寄
4、存器之间、寄存器间址之间、工作寄存器与寄存器间址之间不能相互传送;,3.3 MCS-51单片机的指令系统,一、数据传送指令,1 一般传送指令,(2)8位传送指令以累加器ACC为目的字节,MOV A,Rn ;A(Rn)MOV A,#data ;AdataMOV A,Ri ;A(Ri)MOV A,direct ;A(direct),(3)8位传送指令以Rn为目的字节,MOV Rn,A ;Rn(A)MOV Rn,#data ;RndataMOV Rn,direct ;Rn(direct),3.3 MCS-51单片机的指令系统,一、数据传送指令,1 一般传送指令,(2)8位传送指令以direct为目的
5、字节,MOV direct,Rn ;direct(Rn)MOV direct,#data ;directdataMOV direct,Ri ;direct(Ri)MOV direct,direct1 ;direct(direct)MOV direct,A ;direct(A),(3)8位传送指令以Ri为目的字节,MOV Ri,A ;(Ri)(A)MOV Ri,#data ;(Ri)dataMOV Ri,direct ;(Ri)(direct),3.3 MCS-51单片机的指令系统,一、数据传送指令,2 特殊传送指令,(1)读ROM指令,MOVC A,A+DPTR ;A(A)+(DPTR)MOV
6、C A,A+PC ;A(A)+(PC),(2)读/写RAM指令,MOVX A,DPTR ;A(DPTR)MOVX A,Ri ;A(P2(Ri),说明:没有写ROM指令。,MOVX DPTR,A ;(DPTR)(A)MOVX Ri,A ;P2(Ri)(A),读,写,说明:Ri只能提供低8位地址,高8位地址由P2口输出。,3.3 MCS-51单片机的指令系统,一、数据传送指令,3 堆栈操作指令,PUSH direct ;SP(SP)+1,(SP)(direct),POP direct ;direct(SP),SP(SP)-1,入栈,出栈,4 数据交换指令,XCH A,Rn ;(A)(Rn)XCH
7、A,direct ;(A)(direct)XCH A,Ri ;(A)(Ri),字节交换,XCHD A,Ri ;(A)30(Ri)30SWAP A ;(A)30(A)47,半字交换,3.3 MCS-51单片机的指令系统,二、算术运算指令,1 加法指令,ADD A,Rn ;A(A)+(Rn)ADD A,direct ;A(A)+(direct)ADD A,Ri ;A(A)+(Ri)ADD A,#data ;A(A)+data,(1)不带进位的加法指令,ADDC A,Rn ;A(A)+(Rn)+CyADDC A,direct ;A(A)+(direct)+Cy ADDC A,Ri ;A(A)+(Ri
8、)+CyADDC A,#data ;A(A)+data+Cy,(2)带进位的加法指令,3.3 MCS-51单片机的指令系统,二、算术运算指令,1 加法指令,(3)自加1指令,INC A ;A(A)+1INC Rn ;Rn(Rn)+1INC direct ;direct(direct)+1 INC Ri ;(Ri)(Ri)+1INC DPTR ;DPTR(DPTR)+1,(4)十进制调整指令,DA A,3.3 MCS-51单片机的指令系统,二、算术运算指令,2 减法指令,(1)带进位的减法指令,SUBB A,Rn ;A(A)-(Rn)-CySUBB A,direct ;A(A)-(direct)
9、-Cy SUBB A,Ri ;A(A)-(Ri)-CySUBB A,#data ;A(A)-data-Cy,(2)自减1指令,DEC A ;A(A)-1DEC Rn ;Rn(Rn)-1DEC direct ;direct(direct)-1 DEC Ri ;(Ri)(Ri)-1,3.3 MCS-51单片机的指令系统,二、算术运算指令,3 乘法指令,MUL AB ;BA(A)(B),说明:积的高8位在通用寄存器B中,低8位在累加器A中。,4 除法指令,DIV AB ;(A)(B)= A B,说明:商在通用寄存器A中,余数在累加器B中。,特别提示:乘法指令和除法指令中,操作数A、B之间不用逗号隔开
10、!且仅此两条指令例外!,3.3 MCS-51单片机的指令系统,三、逻辑运算指令,1 逻辑“与”,ANL direct,A ;direct(direct)(A)ANL direct,#data ;direct(direct)data,ANL A,Rn ;A(A)(Rn)ANL A,direct ;A(A)(direct)ANL A,Ri ;A(A)(Ri)ANL A,#data ;A(A) data,逻辑“与”指令共6条,其中以direct为目的操作数的2条,以累加器A为目的操作数的4条。,说明:,后续的逻辑“或”指令、逻辑“异或”指令仅助记符不同,操作数完全相同。,仍是 字节指令!,3.3 M
11、CS-51单片机的指令系统,三、逻辑运算指令,2 逻辑“或”,ORL direct,A ;direct(direct)(A)ORL direct,#data ;direct(direct)data,ORL A,Rn ;A(A)(Rn)ORL A,direct ;A(A)(direct)ORL A,Ri ;A(A)(Ri)ORL A,#data ;A(A) data,3.3 MCS-51单片机的指令系统,三、逻辑运算指令,3 逻辑“异或”,XRL direct,A ;direct(direct)(A)XRL direct,#data ;direct(direct)data,XRL A,Rn ;A
12、(A)(Rn)XRL A,direct ;A(A)(direct)XRL A,Ri ;A(A)(Ri)XRL A,#data ;A(A) data,4 累加器“清零”与“取反”,清零:CLR A ;A0,注意:字节的清零与取反操作只能在累加器A中进行,其他任何寄存器均无此功能。,3.3 MCS-51单片机的指令系统,三、逻辑运算指令,5 累加器循环移位指令,累加器循环移位指令共4条,左移、右移各两条,分别是“带进位位的”和“不带进位位的”。,说明:,循环移位操作只能在累加器ACC中实现,其他任何寄存器均无此功能。,3.3 MCS-51单片机的指令系统,四、控制转移指令,1 无条件转移,AJMP
13、 addr11 ;PC(PC)+2,PC010addr11,(1)短转移,转移范围:短转移指令的下一条指令所在的2KB空间。,重要概念:PC当前值,所谓PC当前值,是指指令取指完成以后的PC值,也就是紧靠当前正在执行的指令存储的、向着地址增大方向的、下一条指令的地址。,3.3 MCS-51单片机的指令系统,四、控制转移指令,1 无条件转移,(4)散转移,JMP A+DPTR ;PC(PC)+1,PC(A)+(DPTR),转移范围:理论上可以转移到全部64KB程序空间。,SJMP rel ;PC(PC)+2,PC(PC)+ rel,(3)相对转移,转移范围:以相对转移指令的下一条指令为中心的25
14、6B,其中向高地址端127B,向低地址端128B。,LJMP addr16 ;PC(PC)+3,PCaddr16,(2)长转移,转移范围:全部64KB程序空间。,四、控制转移指令,2 条件转移,(1)累加器判零转移,3.3 MCS-51单片机的指令系统,JZ rel ;PC(PC)+2 ;若(A)=0,则PC(PC)+rel ;否则PC(PC)JNZ rel ;PC(PC)+2 ;若(A)0,则PC(PC)+rel ;否则PC(PC),各种颜色的PC:,PC 指向当前正在被执行的指令;PC 指向当前正在被执行的指令的下一条指令;PC 指向执行完当前指令后将要执行的那条指令;,四、控制转移指令,
15、2 条件转移,(2)比较不相等转移,3.3 MCS-51单片机的指令系统,CJNE A,direct,rel;PC(PC)+3 ;若(A)(direct),则PC(PC)+rel ;否则PC(PC)CJNE A,#data,rel ;PC(PC)+3 ;若(A)data,则PC(PC)+rel ;否则PC(PC)CJNE Rn,#data,rel;PC(PC)+3 ;若(Rn)data,则PC(PC)+rel ;否则PC(PC)CJNE Ri,#data,rel;PC(PC)+3 ;若(Ri)data,则PC(PC)+rel ;否则PC(PC),四、控制转移指令,2 条件转移,(3)减1不为零
16、转移,3.3 MCS-51单片机的指令系统,DJNZ Rn,rel ;PC(PC)+2 ;Rn(Rn)-1 ;若(Rn)0,则PC(PC)+rel ;否则PC(PC)DJNZ direct,rel ;PC(PC)+3 ;direct(direct)-1 ;若(direct)0,则PC(PC)+rel ;否则PC(PC),四、控制转移指令,3 调用与返回指令,(1)调用指令,3.3 MCS-51单片机的指令系统,四、控制转移指令,3 调用与返回指令,(1)调用指令,3.3 MCS-51单片机的指令系统,调用指令调用的对象是子程序。,调用指令的控制范围是有限的,即子程序的第一条指令所在的存储单元必
17、须在此控制范围以内,否则调用指令将无法完成子程序的调用。,短调用指令的控制范围:短调用指令的下一条指令所在的2KB程序存储空间。,长调用指令的控制范围:全部64KB程序存储空间。即使用长调用指令时,子程序可放在程序存储器的任意位置。,几 点 说 明,调用子程序运行完,程序回到调用指令的下一条指令继续执行,这是通过PC当前值入栈操作来实现的。,四、控制转移指令,3 调用与返回指令,(2)返回指令,3.3 MCS-51单片机的指令系统,说明:返回指令实质上是两次出栈操作,把调用指令压入堆栈的PC当前值重新装入PC,从而实现从调用指令的下一条指令继续执行主程序。,四、控制转移指令,4 空操作指令,3
18、.3 MCS-51单片机的指令系统,NOP ;PC(PC)+1,说明:空操作指令占用一字节程序存储器,执行占用1个机器周期,除此以外没有其他作用,通常被用作极短时间(S级)的延时。,五、位操作指令,1 位传送指令,3.3 MCS-51单片机的指令系统,MOV bit,C ;bit(Cy)MOV C,bit ;Cy(bit),C表示进位位Cy,程序状态字PSW的最高位。,说明:,bit表示位地址,有三种表示方法,可位于两个存储区域。,a)直接物理位地址; b)直接物理字节地址.第几位 c)特殊功能寄存器名.第几位,i)内部RAM的位寻址区,地址20H2FH; ii)特殊功能寄存器的个别字节。,五
19、、位操作指令,2 位状态设置指令,3.3 MCS-51单片机的指令系统,CLR C ;Cy0CLR bit ;bit0,(1)位清零指令,SETB C ;Cy1SETB bit ;bit1,(2)位置位指令,五、位操作指令,3 位逻辑操作指令,3.3 MCS-51单片机的指令系统,(1)位逻辑与,(2)位逻辑或,(3)位取反(逻辑非),与逻辑运算指令 有何区别?,五、位操作指令,4 位控制转移指令,3.3 MCS-51单片机的指令系统,(1)判Cy转移,JC rel ;PC(PC)+2 ;若(Cy)=1,则PC(PC)+rel ;否则PC(PC)JNC rel ;PC(PC)+2 ;若(Cy)
20、=0,则PC(PC)+rel ;否则PC(PC),五、位操作指令,4 位控制转移指令,3.3 MCS-51单片机的指令系统,(2)判bit转移,JB bit,rel ;PC(PC)+3 ;若(bit)=1,则PC(PC)+rel ;否则PC(PC)JBC bit,rel ;PC(PC)+3 ;若(bit)=1,则PC(PC)+rel,bit0 ;否则PC(PC)JNB bit,rel ;PC(PC)+3 ;若(bit)=0,则PC(PC)+rel ;否则PC(PC),一、汇编语言格式,3.4 汇编语言程序设计, 每条指令占一行;, 程序标号、指令助记符、操作数1分别对齐;, 操作数之间以逗号隔
21、开,不能加空格;,示例程序: MOV DPTR,#0020H MOVX A,DPTR MOV B,A INC DPTR MOVX A,DTPR MUL AB INC DPTR MOVX DPTR,A MOV A,B INC DPTR MOVX DPTR,A,二、伪指令介绍,3.4 汇编语言程序设计,1 伪指令与指令的区别,作用时间不同: 伪指令在程序编译的时候起作用; 指令在程序运行的时候起作用。,有无指令码不同: 伪指令不形成指令码,因此不能被单片机执行; 指令最终形成指令码,存放在ROM中,被单片机执行。,伪指令的作用:编译程序时,为编译软件提供必要的信息。,二、伪指令介绍,3.4 汇编语
22、言程序设计,2 常用伪指令,(1) 定位伪指令 格式ORG H 作用规定紧随其后的程序块或数据块的起始地址。 举例 ORG 0000H,(2) 定义字节伪指令 格式 标号:DB X1,X2,,Xn 作用Xn为字节数据或ASCII码;把X1,X2,,Xn从“标号”指定的地址开始,依次连续存放。 举例 LABLE:DB 03H,20,A,二、伪指令介绍,3.4 汇编语言程序设计,2 常用伪指令,(3) 定义双字节指令 格式 标号:DW X1,X2,,Xn 作用Xn为双字数据,把X1,X2,,Xn从“标号”指定的地址开始,依次连续存放;先存高8位,再存低8位。 举例 LABLE:DW 2148H,2
23、200H,(4) 预留存储区伪指令 格式 标号:DS n 作用从“标号”指定的地址开始预留n个字节存储单元,既不存储程序代码,也不存储数据。 举例 LABLE:DS 3,二、伪指令介绍,3.4 汇编语言程序设计,2 常用伪指令,(5) 赋值伪指令 格式 字符名称 EQU 地址/数据/Rn 作用把“地址/数据”赋给“字符名称”,通常写在程序开始的地方,在其之后此字符名称即作为指定的地址或数据使用。 举例 EOC EQU P3.2 NUM1 EQU 30H NUM2 EQU R6,(6) 结束汇编伪指令 格式 END 作用写在汇编程序的末尾,表示汇编语言源程序到此结束。,三、程序设计概述,3.4
24、汇编语言程序设计,1 程序设计的一般过程,1 分析任务,2 确定算法,3 画流程图,4 编写程序,5 上机调试,2 程序流程图,一、顺序结构程序设计,3.5 基本程序结构,特点:,顺序结构程序是最简单、最基本的程序;,顺序结构程序按照编写的先后顺序依次执行;,例1将两位压缩BCD码转换成其对应的二进制数。,提示:提取字节某几位的方法。,二、分支结构程序设计,3.5 基本程序结构,分支程序:根据不同的条件,有选择地执行不同的程序块。,使用有条件控制转移指令实现。,例2求符号函数的值。,提示:有符号二进制数的最高为为符号位,“1”表示负数,“0”表示正数,零有两个,00000000 B和10000000 B,即正零和负零 。,三、循环结构程序设计,3.5 基本程序结构,1、循环结构的组成,循环初值:各工作单元的初始值,及循环次数;,循环体:多次重复执行的程序段;,循环修改:每执行一次循环对循环控制条件的修改;,循环控制:对循环条件是否满足进行的判断;,2、两种不同的循环结构,(a)先执行循环体和循环修改,再进行循环控制判
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三体模拟考试题及答案
- 2026电子厂应聘考试题及答案
- 2026电维修考试题及答案
- 设备工作指引试题512测试卷附答案
- 2026电气最近考试题目及答案
- 2026电平车考试题目及答案
- 2026年文旅讲解员基础知识等级考试题库标准答案
- 洗衣房感染风险管控细则
- 燃气管道带气作业施工方案
- 地下矿山通风系统改造施工方案
- 2026年征兵政治考核面试题库及参考答案
- 2025年GPON 和 XG(S)-PON 技术白皮书
- (正式版)T∕GDSTD 023-2026 广东省自然资源资产配置方案编制指南
- 2026机动车检测站授权签字人试题库(含答案)
- GB/T 25085.5-2026道路车辆汽车电缆第5部分:交流600 V或直流900 V和交流1 000 V或直流1 500 V单芯铜导体电缆的尺寸和要求
- 养鹅场水资源管理方案
- 热工技术监督实施细则培训课件
- 2025年新疆医科大学第四附属医院(新疆维吾尔自治区中医医院)面向社会公开招聘事业单位工作人员110人备考题库完整答案详解
- 电伴热带热设计计算表(静态)
- 检验人员培训与考核制度
- 院感和无菌技术
评论
0/150
提交评论