[信息与通信]单片机与嵌入式系统3到9章.ppt
文本预览下载声明
第三章 MCS-51的指令系统 3.1 指令系统概述 3.2 指令系统的寻址方式 3.3 MCS-51指令系统分类介绍 3.1 指令系统概述 首先应该明确一个概念,什么是指令系统。我们把MCS-51单片机所能执行的指令的集合称为其指令系统。 指令的表示方法称为指令格式,一条指令通常由两部分组成,即操作码和操作数。 当然操作数并不一定是一个具体的数据,也有可能仅指出到哪里取得数据的地址或符号。 MCS-51的基本指令共111条,下面是指令系统按空间和时间上的划分: 从上表我们可以看出,绝大多数指令占用单字节或双字节,并且都能在1--2个机器周期内完成。由此可见,MCS-51指令系统对存储空间和时间的利用率较高。 3.2 MCS-51指令系统的寻址方式 所谓寻址就是寻找确定参与操作的数的真正地址。一般来说,寻址方式越多则计算机的功能就越强,灵活性亦越大,指令系统也就越复杂。 MCS-51单片机的指令系统共有7种寻址方式。 3.2.1 符号注释 在描述MCS-51指令系统的功能时,我们经常使用下面符号,其意义如下: 3.2.2 寻址方式 1 、 立即寻址 2 、 直接寻址 3 、 寄存器寻址 4 、 寄存器间接寻址 5 、 变址寻址 6 、 相对寻址 7 、 位寻址 立即寻址 指令中直接给出操作数。立即操作数用前面加有#号的8位或16位数来表示。 8位立即操作数占一个字节, 16位立即操作数占二个字节。 例如: MOV A,# 60H ;A←#60H MOV DPTR,# 3400H DPTR←#3400H MOV 30H,# 40H ;(30H)←#40H 直接寻址 指令直接给出操作数地址。占一个字节。可访问两种地址空间: 特殊功能寄存器地址空间 唯一能访问该空间的寻址方式。 片内内部RAM(128个字节:00H~7FH) 对于特殊功能寄存器,在助记符指令中可直接用符号来代替地址,如: MOV A ,P0 (MOV A ,80H这两条指令是等价的) 表示将P0口的内容传送给A。 思考:MOV 50H, 40H 占多少字节? 寄存器寻址 寻址的对象为选定寄存器区的8个工作寄存器R0--R7,寄存器A、B、DPTR、和Cy位。这种寻址方式中,被寻址的寄存器的内容就是操作数,一般和操作码共占一个字节. CLR A INC DPTR ADD R5,# 20H 操作数采用什么寻址方式?指令占多少字节? 寄存器间接寻址 以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。其中R0、R1必须是工作寄存器组中的寄存器。SP仅用于堆栈操作。 访问内部RAM或外部数据存储器的低256个字节时,可采用 R0或R1作为间址寄存器,通用形式为@Ri。 MOVX A ,@Ri (i=0、1) 例:MOVX A,@R1 , 指令代码 :1110 0011。 假设该条指令存放在2030H,工作寄存器为第0组,(R1)=AFH。片外RAM (AFH)=30H。指令执行过程: 访问片外数据存储器还可用数据指针DPTR作为 间址寄存器,可对整个外部数据存储器空间(64K) 寻址。 例: MOV DPTR ,#1234H MOVX A ,@DPTR 执行PUSH和POP指令时,使用堆栈指针SP作间 址寄存器来进行对栈区的间接寻址。 基址寄存器加变址寄存器间址寻址 变址寻址只能对程序存储器中数据进行操作。由 于程序存储器是只读的,因此变址寻址只有读操作而 无写操作,此种寻址方式对查表访问特别有用。本寻 址方式的指令只有三条: MOVC A,@A+DPTR ;A←(A+DPTR) MOVC A,@ A+PC ;A←(A+PC) JMP @A+DPTR 无条件转移指令 基址寄存器:DPTR或PC 变址寄存器:累加器A 有效地址=(PC)+(A) 或有效地址=(DPTR)+(A) 相对寻址 为解决程序转移而专门设置的。它以PC的当前值为基准,加上指令中给出的相对偏移量(rel)形成有效转移地址。偏移量占一个字节,但这里的PC的当前值是指执行完该指令后的PC值,即转移指令的PC值加上它的字节数。 转移的目的地址用公式表示:
显示全部