资源预览内容
第1页 / 共64页
第2页 / 共64页
第3页 / 共64页
第4页 / 共64页
第5页 / 共64页
第6页 / 共64页
第7页 / 共64页
第8页 / 共64页
第9页 / 共64页
第10页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1单片机原理及应用河海大学常州校区 机电工程学院 丁 坤 Email:dingkhhuc.edu.cn Tel:85191952 Address:实验楼B208第三章 MCS-51单片机的指令系统21-1 概述 1-2 寻址方式 1-3 指令系统31-1 概述1、指令指令是CPU根据人的意图来执行某种操 作的命令。一台计算机所能执行的全部指令 的集合称为这个CPU的指令系统。两种表达方式:机器码指令和汇编指令一、基本概念4(1)机器码指令8051单片机是8位机,其机器语言以8位二进 制为单位。例如,要做10加20的加法,在MCS-51中可用 机器码指令编程: 01110100 00001010 把10放到累加器A中 00100100 00010100 A加20,结果放在A中 为了便于书写和记忆,可采用十六进制表示指令码 ,这样以上两条可写成: 740AH 2414H5(2)汇编语言指令机器语言编写的程序不易记忆、不易查错、 不易修改,采用一定含义的符号即指令助记符来表 示,一般都采用某些有关的英文单词的缩写,这样 就出现了另一种程序语言汇编语言。 所谓的汇编语言是用助记符、符号和数字等 来表示指令的程序语言,容易理解和记忆,它 与机器语言指令是一一对应的。汇编语言不象 高级语言那样通用性强,而是属于某种计算机 所独有的,与计算机的内部硬件结构密切相关 。用汇编语言编写的程序叫汇编语言程序。 6把汇编语言程序翻译成目标程序的过程称称 为汇编过程,简称汇编。完成这个任务有两种方 法:手工汇编和机器汇编。MOV A,#10 ;把10放到累加器A中 ADD A,#20 ;A加20,结果放在A中72、指令格式MCS-51系列单片机汇编语言指令由助记符 字段和操作数字段所组成。指令格式如下: 操作码 操作数1,操作数2,操作数3第一部分为指令操作码助记符,它由25个英文 字母所组成。如:MOV第二部分为操作数,它以一个或几个空格和操 作码隔开,根据指令功能的不同,操作数可以 有1,2,3个或者没有。操作数之间“,”分开。8指令的时间概念:单周期指令;双周期指令; 四周期指令。指令的空间概念:一字节指令;双字节指令; 三字节指令。93、伪指令伪指令不是真正的的指令,无对应的机器码, 在汇编时不产生任何目标程序(机器码),它 只对汇编过程进行某种控制。 51系列中常用的伪指令有:ORG汇编起始命令END汇编结束命令DB定义字节命令DW定义字命令104、标号和注释标号 ABC+:注释 ;+解释对程序的可读性有很重要的影响111-2 寻址方式指令给出参与运算的数据的方式,即 确定操作数地址的方法,通俗讲:以什么 方式找到参与指令执行的数据。MCS-51指令寻址方式主要有7种: 立即寻址、直接寻址、寄存器寻址、寄存器间 接寻址、基址寄存器变址寄存器间接寻址、 相对寻址、 隐含寻址 12一、立即寻址将立即数直接传送到目的操作数中。 可以认为是一种简单的赋值。 如:MOV A,#30H 注意: 字母开头的立即数前加0 #0FFH30HA30H13二、直接寻址在指令中直接给出操作数所在存储单 元的地址。直接寻址方式可以访问以下三中 存储空间:特殊功能寄存器、内部数据存储 器的低128B和位地址空间。14如:MOV A,30H 33HA33H30H15三、寄存器寻址寄存器寻址就是由指令指出寄存器组 R0R7中某一个寄存器作为操作数。 33HR033H+1=34H34H如:INC R016四、寄存器间接寻址操作数的地址事先存放在某个寄存器中 ,寄存器间接寻址是把指定寄存器的内容作 为地址,由该地址所指的单元内容作为操作 数。 17如:MOV A,R0 片内RAM30HR0A30H34H34H30H在访问片内RAM和片外RAM低地址的256 个单元时,用R0或R1作地址指针;在访问全 部64KB外部RAM时,使用DPTR作为地址指 针进行间接寻址。18五、基寄存器加变址寄存器间接寻址 这种寻址方式以16位的程序计数器PC或数据 指针DPTR作为基寄存器,以8位的累加器A作 为变址寄存器。基寄存器和变址寄存器的内容 相加形成16位的地址,该地址即为操作数的 地址。 例如: MOVC A,A+PC MOVC A,A+DPTR19如:MOVC A,A+DPTR程序存储器4000HDPTRA34H30H34H4000H30H+= 4030H4030H20六、相对寻址这种指令中给定地址的相对偏移量rel,以 PC当前值为基地址,加上rel所得结果为转移 目标地址。例如: JC 80H21七、隐含寻址这种指令操作数的地址隐含在操作码中,不 需要指明,这种方式称为隐含寻址。例如: INC A指令,指令代码为04H,但并没有给出 A的地址,A的地址隐含在操作码中221-3 MCS-51单片机指令系统 一、概述1、数据操作MCS-51系列单片机是个高性能的数据 处理机,能对位、半字节、字节和双字节 数据进行各种操作,他们包括数据传送、 逻辑运算、布尔处理和控制转移等操作。23D7 D6 D5 D4 D3 D2 D1 D0CY AC F0RS1RS0OV F1PPSW242、指令类型MCS-51指令系统可分为五大类,即: 数据传送指令:28条 算术运算指令:24条 逻辑运算及移位指令:25条 控制转移指令:17条 位操作指令(布尔操作):17条25二、数据传送指令实现数据传送的功能,最基本最重要的操作 指令。数据传送是否灵活快速对程序的编写和执行 速度产生很大的影响 261、内部数据传送指令1、1 以累加器A为目的操作数指令(4 条,即4种寻址方式) MOV A,Rn MOV A,direct MOV A,Ri MOV A,#data 注意:1、i=0,12、#0FFH(字母开头前加0)271、2以Rn为目的操作数指令(3条) MOV Rn,A MOV Rn, direct MOV Rn,#data 注意:1、n=07281、3以直接寻址的单元为目的操作数指 令(5条) MOV direct,A MOV direct,Rn MOV direct,direct MOV direct,Ri MOV direct,#data291、4 以寄存器间接寻址的单元为目的操 作数指令(3条) MOV Ri,A MOV Ri,direct MOV Ri,#data注意:1、i=0,12、寄存器间接寻址的特殊性302、外部数据传送指令2、1 16位数据传送指令(1条) MOV DPTR,#data16注意:DPTR是由DPH,DPL组成 312、2 外部数据存储器数据传送指令(4 条) MOVX A,DPTR MOVX A,Ri MOVX DPTR, A MOVX Ri ,A322、3 程序存储器数据传送指令(查表 指令)(2条) MOVC A,A+PC MOVC A,A+DPTR33如:MOVC A,A+DPTR程序存储器4000HDPTRA34H30H34H4000H30H+= 4030H4030H343、数据交换指令3、1 字节交换指令(3条) XCH A,Rn XCH A,direct XCH A,Ri 353、2 半字节交换指令(3条) XCHD A,Ri364、栈操作指令4、1 进栈指令 PUSH direct SP加1,然后再将数据保存到堆栈中。4、2 退栈指令 POP direct 先将堆栈中的数据弹出,然后SP再减137三、算术运算指令MCS-51系列单片机的算术运算指令包括加 、减、乘、除基本的四则运算。算术运算结果将使得进位标记CY,半进位标 志AC,溢出位标志OV,这三种标志置位或复 位。381、加法指令1、1不带进位的加法指令(4条) ADD A,Rn ADD A,direct ADD A,Ri ADD A,#data注意:若有进位CY被置位 391、2 带进位的加法指令(4条) ADDC A,Rn ADDC A,direct ADDC A,Ri ADDC A,#data401、3 加1指令(5条) INC A INC Rn INC direct INC Ri INC DPTR411、4 十进制调整指令(1条) DA A422、减法指令2、1 带借位的加法指令(4条) SUBB A,Rn SUBB A,direct SUBB A,Ri SUBB A,#data432、2 减1指令(4条) DEC A DEC Rn DEC direct DEC Ri443、乘法指令MUL AB注意:低字节放在A中,高字节放在 中。454、除法指令DIV AB注意:A/B,商放在中,余数放在 中。46四、逻辑运算指令1、累加器A的逻辑操作指令(7条) CLR A ;清零指令 CPL A ;取反指令 RL A ;左环移指令RLC A ;带进位左环移指令D7D0CYD0D747RR A ;右环移指令RRC A;带进位右环移指令SWAP A;累加器ACC半字节交换指令 D7D0CYD0D7482、两个操作数的逻辑操作指令 2、1 逻辑与指令(6条) ANL A,Rn ANL A,direct ANL A,Ri ANL A,#data ANL direct,A ANL direct,#data492、2 逻辑或指令(6条) ORL A,Rn ORL A,direct ORL A,Ri ORL A,#data ORL direct,A ORL direct,#data502、3逻辑异或指令(6条) XRL A,Rn XRL A,direct XRL A,Ri XRL A,#data XRL direct,A XRL direct,#data51五、位操作指令1、位变量传送指令(2条) MOV C,bit MOV bit,C 522、位变量修改指令(6条) CLR C CLR bit CPL C CPL bit SETB C SETB bit533、位变量逻辑操作指令 3、1位变量逻辑与指令(2条) ANL C,bit ANL C,/bit543、2 位变量逻辑或指令(2条) ORL C,bit ORL C,/bit55五、控制转移指令1、无条件转移指令(4条)AJMP addr11;短跳转指令 LJMP addr16;长跳转指令 SJMP rel ;相对转移指令 JMP A+DPTR;基寄存器加变址寄存 器间接转移指令(散转指令)562、条件转移指令21测试条件符合转移指令(7条) JZ rel JNZ rel JC rel JNC rel JB bit, rel JNB bit, rel JBC
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号