《微控制器原理及应用》ch03

  • 格式:ppt
  • 大小:1.52 MB
  • 文档页数:2

下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微控制器
——原理及应用——
第三章 80C51系列微控制器 的指令系统及程序设计
3.1 概 述
指令是微处理器控制计算机进行某种操作的命令,而指 令系统则是全部指令的集合。计算机的功能是由其指令系统 来实现的。一般来说,指令系统越丰富,计算机的功能也就 越强。
2
3.1.1 指令分类
80C51系列单片机共有111条指令,按其功能可分为5大类 :数据传送类指令(28条)、算术运算类指令(24条)、逻辑运算 类指令(25条)、控制转移类指令(17条)、布尔操作类指令(17条) 。
;DPTR中的内容为2010H ; 将 XRAM 的 2010H 单 元 的 内 容 传 输到A中
13
3.2.5 变址寻址(基址寄存器+变址寄存器间接寻址)
变址寻址方式以16位的程序计数器PC(当前地址)或数据 指针DPTR作为基址寄存器,以8位的累加器A作为变址寄存 器,基址寄存器内容和变址寄存器内容相加,其和形成16位 的地址。80C51系列MCU共有3条变址寻址的指令:
➢ #data
位立即数。
➢ #datal6 16位立即数。
5
➢ Addr16 ➢ Addr1l ➢ Rel ➢ Bit ➢ Rn ➢ Ri ➢@ ➢+ ➢− ➢* ➢/
16位的地址码。 11位的地址码。 以补码表示的8位偏移量,其值为−128~+127。 片内RAM中可直接寻址的位地址。 工作寄存器,其中n=0~7。 工作寄存器,其中i=0~1。 间接寻址符号。 加。 减。 乘。 除。
6
➢∧
与。
➢∨
或。

异或。
➢= ➢< ➢> ➢ <> ➢ ←(→) ➢ (X) ➢ ((X)) ➢ (X)
等于。 小于。 大于。 不等于。 表示数据传输方向。 X(寄存器或RAM地址)单元的内容。 以X单元的内容为地址的存储器单元内容。 寄存器的内容取反。
7
➢ Rrr
指令代码中rrr三位的值由寄存器Rn确定,R7~
R0对应的rrr为11l~000。
➢$
本条指令的起始地址。
3.2 寻 址 方 式
指令的一个重要组成部分是操作数,有些操作数不能直 接给出,但可以给出操作数所存放的地址。指令给出寻找操 作数的方式称为寻址方式。根据指令操作的需要,计算机有 多种寻址方式。
80C51系列MCU指令系统的寻址方式共有7种。
10
3.2.3 寄存器寻址
寄存器寻址是由指令给出某一寄存器的内容作为操作数
。寄存器寻址对所选的工作寄存器区中R7~R0进行操作。累
加器A、寄存器对AB和DPTR也可用寄存器寻址方式访问。
例如指令:
INC R0
;R0←(R0)+1,其功能是对R0进行操 作,使
其内容加1
MOV DPL,A
;DPL←(A),将A的内容传输到寄存器DPL
MOVC A,@A+PC
;A←((A)+(PC))
MOVC A,@A+DPTR
;A←((A)+(DPTR))
JMP @A+DPTR
;PC←(A)wenku.baidu.com(DPTR)
14
3.2.6 相对寻址
相对寻址是把指令中规定的地址作为偏移量与PC的当前值
相加,得到参与操作的数据的地址。
相对寻址中的偏移量是有符号数,并以补码形式给出,所
以转移的目标地址是在PC当前值的基础上加偏移量。
例如指令:
JC
#80H
;若(CY)=1,则跳转
若转移指令存放在1005H单元中(即PC=1007H),则当前

MOV A,P1
;此指令还可以写成“MOV A,90H”,90H
是P1口的直接地址
11
3.2.4 寄存器间接寻址
寄存器间接寻址是由指令指出某一寄存器的内容作为操 作数的地址。
80C51系列MCU中可作为间接寻址的寄存器有: (1) 片内RAM低128B单元。 (2) 用堆栈指针SP来寻址的堆栈单元,即堆栈操作指令 (PUSH和POP)的寻址方式。 (3) 用R0、R1或数据指针DPTR来寻址片外扩展的数据存 储器。
12
例如指令:
MOV A,@R0
;A←((R0))
其功能是把指定的R0内容作为参与操作的数据的地址,
把此地址单元的内容传至累加器A中,寄存器间接寻址用符
号“@”表示,以区别于寄存器寻址。
例如,将外部存储单元2010H中的内容传输到累加器A中
,则指令为:
MOV DPTR,#2010H MOVX A, @DPTR
8
3.2.1 立即寻址
这种寻址方式在指令中直接给出参与操作的常数(称为立 即数)。立即数有1字节和2字节两种。 例如指令:
MOV
A,#5AH
;A←5AH
其功能是将立即数5AH送入累加器A中。
又如指令:
MOV
DPTR,#2100H
;DPTR←2100H
其功能是将16位立即数2100H送入16位寄存器DPTR中。
4
3.1.3 指令中的符号
在说明和使用80C51系列MCU指令系统的功能时,经常
使用一些符号,其意义如下。
➢A
累加器(ACC)。通常用ACC表示累加器的地址,
用A表示它的名称。
➢B
寄存器。可以将立即数直接送给直接地址。
➢ AB
累加器(ACC)和寄存器(B)组成的寄存器对。
➢ Direct8 位片内RAM的存储单元地址。
按指令代码的字节数可分为3大类:单字节指令(49条)、双 字节指令(45条)、三字节指令(17条)。
按指令的执行时间可分为3大类:单机器周期指令(64条)、 双机器周期指令(45条)、四机器周期指令(2条)。
3
3.1.2 指令格式
[标号:]操作码[操作数1][,操作数2][,操作数3][;注释]
[ ]表示其中内容是可选项。 (1) 标号是一条指令的标志,是可选项,与操作码之间用 “:”隔开。 (2) 操作码指出了CPU应执行的操作类型,即操作性质。 (3) 操作数指出了参加操作的数据或数据的存放地址。它 以一个或几个空格与操作码隔开。 (4) 注释不属于指令执行部分,即不会被编译系统转换为 机器码。用“;”作为指令与注释的分隔符。
9
3.2.2 直接寻址
直接寻址是指在指令中给出操作数的直接地址,该地址 指出了操作数所在的字节单元地址。
直接寻址方式可访问以下两种存储空间。 (1) 特殊功能寄存器(SFR)空间。SFR只能用直接寻址方式 访问。 (2) 片内RAM的低128B空间(00H~7FH)。 例如指令:
MOV
30H, 60H ;30H← (60H)

相关主题