单片机原理与应用第3章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序存储器
DPTR 2000H A
10H
2000H
20来自百度文库0H
64H
64H(10H)
图3-4 变址寻址示意图
6.相对寻址 以当前程序计数器PC的内容为基础,加上指 令给出的一字节补码数(偏移量)形成新的PC值 的寻址方式。相对寻址用于修改PC值,主要用于 实现程序的分支转移。 例如: SJMP 08H ;PC←PC+2+08H 指令操作示意图如图3-5所示。
阶段3 寻址方式
1.立即寻址
指令中直接给出操作数的寻址方式。立即 操作数用前面加有#号的8位或16位数来表示。 例如: MOV A,# 60H ;A←#60H MOV DPTR,# 3400H ;DPTR←#3400H MOV 30H,# 40H ;30H单元←#40H 上述3条指令执行完后,累加器A中数据为 立即数据60H,DPTR寄存器中数据为3400H, 30H单元中数据为立即数40H。
5.变址寻址
变址寻址只能对程序存储器中数据进行操作。 由于程序存储器是只读的,因此变址寻址只有读操 作而无写操作,在指令符号上采用MOVC的形式( 如图3-4所示)。 例如: MOVC A,@ A+DPTR;A←(A+DPTR) 又如: MOVC A,@ A+PC ;A←(A+PC) 这条指令与上条指令不同的是,基址寄存器是 PC。
3.寄存器寻址 以通用寄存器的内容为操作数的寻址方式 。通用 寄存器指A、B 、DPTR以及R0~R7 。例如: CLR INC ADD A ;A←0 DPTR ;DPTR←DPTR+1 R5,# 20H ;R5←#20H+R5
4. 寄存器间接寻址 以寄存器中内容为地址,以该地址中内容为操 作数的寻址方式。间接寻址的存储器空间包括内部 数据RAM和外部数据RAM。能用于寄存器间接寻址 的寄存器有R0,R1,DPTR,SP。 例如:MOV @R0,A ;内部RAM(R0)←A 其指令操作过程示意图如图3-1所示。 又如:MOVX A,@R1;A←外部RAM(P2R1) 其指令操作过程示意图如图3-2所示。 再如:MOVX @DPTR,A;外部RAM(DPTR)←A 其指令操作过程示意图如图3-3所示。
bit——内部RAM或专用寄存器中的直接寻址位。 A——累加器。 B——专用寄存器,用于乘法和除法指令中。 C—— 进位标志或进位位,或布尔处理机中的累加 器。 @——间址寄存器或基址寄存器的前缀,如@Ri, @DPTR。 / ——位操作数的前缀,表示对该位操作数取反, 如/bit。 ( X ),某一个寄存器或者存储单元X中的内容。 ( ( X) ),由X间接寻址的单元的内容。 ←,将箭头右边的内容送入箭头左边的地址单元。
阶段4 常用符号 Rn——当前选中的寄存器区中的8个工作寄存器R0~ R7(n=0~7)。 Ri——当前选中的寄存器区中的2个工作寄存器R0、 R1(i=0,1)。 direct —— 8位的内部数据存储器单元中的地址。 #data——包含在指令中的8位常数。 #data16——包含在指令中的16位常数。 addr16——16位目的地址。 addr11——11位目的地址。 rel——8位带符号的偏移字节,简称偏移量。 DPTR——数据指针,可用作16位地址寄存器。
2. 直接寻址
指令中直接给出操作数地址的寻址方式,能 进行直接寻址的存储空间有SFR寄存器和内部数 据RAM。例如: MOV PSW,# 20H; PSW←#20H PSW为直接寻址寄存器的符号地址。又如: MOV A,30H;A←30H 内部RAM单元中的内容30H为直接给出的内部 RAM的地址。
程序存储器
PC
2000H SJMP 08H 08H 200AH (2000H) 200AH
2000H+2
图3-5 相对寻址示意图
7.位寻址 位寻址只能对有位地址的单元作位寻址操作。 位 寻址其实是一种直接寻址方式,不过其地址是位地 址 。例如: SETB 10H ;将10H位置1 若22H单元中存放着数据40H,22H单元的D0 位的位地址为10H,执行上述指令后(22H)=41H 。 又如: MOV 32H,C ;32H←进位位C
任务2 数据传送类指令
数据传送类指令共 28 条,是将源操作数送到 目的操作数。指令执行后,源操作数不变,目的操 作数被源操作数取代。数据传送类指令用到的助记 符 有 MOV 、 MOVX 、 MOVC 、 XCH 、 XCHD 、 SWAP 、 PUSH 、 POP8 种。源操作数可采用寄存 器、寄存器间接、直接、立即、变址 5 种寻址方式 寻址,目的操作数可以采用寄存器、寄存器间接、 直接寻址3种寻址方式。
阶段2 指令格式 汇编语言的指令格式为:
[标号:]操作码助记符 [目的操作数] [,源操作数][;注释]
在汇编语言的指令中,标号代表该指令存放在 程序存储器单元的首地址。操作码部分规定了指令所 实现的操作功能,以英语助记符表示,如ADD 助记 符表明该指令是一条加法指令。操作数部分指出了参 与操作的数据来源和操作结果存放的目的单元。注释 是写给人看的,不会像操作码和操作数一样翻译成0、 1代码存入程序存储器。
片内RAM
R0
30H
30H
4AH
A
4AH
图3-1 MOV @R0,A间接寻址示意图
片外 RAM
P2 34H DPTR 2000H R1 10H 3410H 6FH 2000H
片外 RAM
7DH
A
6FH
A
7DH
图3-2 MOVX A,@R1间接 寻址示意图
图3-3 MOVX @DPTR,A 间接 寻址示意图
第3章 单片机 的指令系统
1
2
任务1 汇编语言
任务2 数据传送类指令
3 4 5 6 任务3 算术运算类指令 任务4 逻辑运算类指令
任务5 控制转移类指令
任务6 位操作类指令
任务1 汇编语言
阶段1 指令系统的分类 指令是CPU根据人的意图来执行某种操作的命 令。一台计算机所能执行的全部指令的集合称为这 个CPU的指令系统。按照指令占用的存储空间可分 为:单字节指令(49条)、双字节指令(45条)、 三字节指令(17条);按照指令的执行时间可分为: 单周期指令(64条)、双周期指令(45条)、四周 期指令(2条)。按照指令的功能划分可分为五类: 数据传送类指令(29条)、算术运算类指令(24 条)、逻辑运算和移位指令(24条)、控制转移类 指令(17条)、位操作类指令(17条)。
相关文档
最新文档