第3章MCS51单片机指令系统及编程举例.ppt
《第3章MCS51单片机指令系统及编程举例.ppt》由会员分享,可在线阅读,更多相关《第3章MCS51单片机指令系统及编程举例.ppt(46页珍藏版)》请在三一文库上搜索。
1、,微机原理及应用,对于任何一台计算机,必须有软件(程序)的支持,才能工作。但是市场上所售的单片机是裸机,在使用之前要现对它编程,将程序固化在芯片内,才能使用。 指令系统是一种CPU所能直接执行的所有命令的集合,CPU的主要功能是由它的指令系统来体现的。任何计算机语言编写的任何程序,都必须转换为指令系统中相应指令代码的有序集合,CPU才能执行 。 单片机的指令系统是单片机能够识别并执行的所有指令的集合。,3.1指令系统简介 每一种CPU都有其独立的指令系统。 MCS-51系列单片机指令系统共有111条指令,其中有49条单字节指令,45条双字节指令和17条三字节指令。 MCS-51指令系统的功能十
2、分强大,它把体现单片机的各种功能的寄存器组织在统一的地址空间中,MCS-51指令系统在其存储空间、时间的利用率及工作效率方面都是较高的。,1. 指令格式 MCS-51指令系统中的每一条指令都有两级指令格式: CPU可直接识别并执行的机器语言指令(机器语言)。 汇编语言指令(简称汇编指令)。 符号说明:见书上.P.34,MCS-51汇编语言指令格式,由以下几个部分组成: 标号: 操作码 目的操作数 ,源操作数 ;注释 例:LOOP:MOV A,R1;AR1 MOV A,R1 INC A NOP,3.2 寻址方式 所谓寻址方式就是寻找或获得操作数的方式。 指令的一个重要组成部分是操作数。由寻址方式
3、指定参与运算的操作数或操作数所在单元的地址。,MCS-51指令系统的寻址方式有以下7种: 1. 立即寻址 2. 直接寻址 3. 寄存器寻址 4. 寄存器间接寻址 5. 变址寻址 6. 相对寻址 7. 位寻址,立即寻址:操作数直接出现在指令中,可以是8位,也可是16位。该方式寻址中的操作数称为立即数,用“”表示。 例:MOV A,#30H ;A30H 执行结果:A=30H 例:MOV DPTR,#1000H;DPTR1000H 执行结果: DPTR1000H, 注意:只有MOV DPTR,#date16指令的立即数为16位,DPTR分为DPH和DPL,在上述例子中, DPH=10H, DPL=0
4、0H,直接寻址:操作数的地址直接出现在指令中。这类寻址方式的操作数只能是存放在内部RAM和SFR中。,(1)SFR 例:MOV A,P1 执行结果:将P1口的内容送到A中。 若P1的内容为78H,执行该指令后,A=78H,见.P.23,(2)内部RAM的低128字节 例:MOV A,76H 执行结果:将76H单元的内容送到A中。 若(76H)=3FH,执行该指令后,A=3FH,注意:若要表示某个单元的内容,将该单元用括号扩起来,如(43H)、(76H)、(R0)等。,寄存器寻址:操作数为寄存器的内容。 此处的寄存器指的是工作寄存器R0R7、累加器A、通用寄存器B、数据指针寄存器DPTR和位累加
5、器C(即进位位C)。 例 :MOV A,R0 执行结果:将R0的内容送入A中。 若R0的内容(R0)=5AH,则A=5AH,寄存器间接寻址:将指定寄存器中的内容作为地址,该地址对应的内容才是操作数,用表示。 例:MOV A,R0 执行结果:将R0的内容作为地址,再将该地址对应的内容送入A中。 若(R0)=46H,(46H)=2FH,则: A=(R0)=(46H)=2FH,例:MOV R1 , 76H 执行结果: (R1) (76H) 。 若(76H)=0FH, (R1)=23H,则: (23H)=0FH,变址寻址:以程序指针PC或数据指针DPTR为基址,以累加器A作为变址,两者内容相加(即基址
6、偏移量)形成16位地址。,例:,地址 目标代码 汇编指令 2100 7406 MOV A,#06H 2102 83 MOVC A,A+PC 2103 00 NOP 2104 00 NOP 2109 32 DB 32H 执行结果分析:当执行到MOVC A,A+PC时,PC=2103H(基址),A=06H(偏移量),因此A+PC所示的地址=2103H+06H=2109H,(2109H)=32H,所以A=32H,例:,MOV A,#01H MOV DPTR,#TABLE MOVC A,A+DPTR TABLE: DB 41H DB 42H 执行结果分析:基址的首地址= TABLE 偏移量= 01H,
7、 程序执行到MOVC A,A+DPTR时, A+DPTR所指的地址= TABLE +01H,因此,该指令执行后A=42H,相对寻址:以PC的当前值为基址,与指令中的第二字节给出的偏移量rel(8位有符号数)相加,所得之和为程序的转移地址。转移范围为+127-128字节之间。 例:SJMP 08H;双字节指令 分析:若PC=2000H为该条指令的地址,则转移目标地址=2000H+02H+08H=200AH,位寻址:对片内RAM的20H2FH字节地址中的所有位和部分SFR的位进行寻址。 区分指令中是位地址还是存储器单元地址不太容易,主要是由另一个操作数来区分。 例:SETB EX0 ;EX01,位
8、寻址 MOV C,07H ;C(07H) ,位寻址 MOV A,20H ;A(20H) ,直接寻址 MOV C,20H ;C(20H) ,位寻址,3.3 指令系统 指令分类:MCS-51指令系统共有111条指令,分成5大类: (1)数据传送类 (2)算术运算类 (3)逻辑运算类 (4)控制程序转移类 (5)布尔变量操作(位操作类),3.4 汇编语言程序设计基础,用汇编语言编写的源程序,汇编程序,目标程序,汇编语言是一种采用助记符表示的机器语言,即用助记符号来代表指令的操作码和操作数,用标号或符号代表地址、常数或变量。而助记符一般都是英文单词的缩写,因此使用方便。这种用助记符编写的程序称为源程序
9、。,汇编语言源程序必须翻译成机器语言的目标代码,亦称目标程序,计算机才能执行。其翻译工作可由汇编程序自动完成,汇编程序的功能就是将用助记符号编写的源程序翻译成用机器语言表示的目标程序。,汇编语言程序的组成: 汇编语言源程序是由汇编语句组成的,一般情况下,汇编语言语句可分为:指令性语句(即汇编指令)和指示性语句(即伪指令)。,指令性语句(可简称指令)是进行汇编语言程序设计的可执行语句,每条指令都产生相应的机器语言的目标代码。源程序的主要功能是由指令性语句去完成的。 指示性语句(伪指令)又称汇编控制指令。它是控制汇编(翻译)过程的一些命令,程序员通过伪指令通知汇编程序在进行汇编时的一些指示。因此,
10、伪指令不产生机器语言的目标代码,是进行汇编语言程序设计的不可执行语句。,伪指令:,1、 ORG (汇编起始地址) 例: ORG 3000H START: MOV A, R1 2、 END (结束汇编) 3、 EQU (等值或赋值) 格式:标识符 EQU 数或汇编符号 功能:把数或汇编符号赋给标识符,且只能赋值1次。 例: INT-1 EQU 001BH ORG INT-1 AJMP LP1,注意:EQU与前面的标号之间不要使用冒号,只用一个空格进行分隔。,4、 DB (定义字节) 格式:标号: DB X1,X2,X3,Xn 功能:将项或项表中的8位字节数据依次存入标号所示的存储单元中 例:DE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 单片机 指令系统 编程 举例
链接地址:https://www.31doc.com/p-2577290.html