第03章 MCS-51指令系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
► 例:
三、指令系统支持的寻址方式(4-2)
► 寄存器间接寻址的三种用法: ► ⑴可以借助于 R0 或 R1 这 2 个工作寄存器用 MOV 指
令进行寄存器间接寻址来寻址片内RAM区的通用寄 存器; ► ⑵可以借助于R0或R1这2个工作寄存器用MOVX指 令进行寄存器间接寻址来寻址片外 64K数据存储器 R0R1片外 区的低256单元; ► ⑶还可以借助于16位的数据指针DPTR用MOVX指 令进行寄存器间接寻址来寻址整个片外64K数据存 DPTR片外 储器区中的任一单元。
► 4、寄存器间接寻址:
操作码中包含着R0或R1这2 个工作寄存器中某一个的序号,而该工作寄存器中 的内容为存放操作数的地址。
E7H MOV A,@R1 ► 若指令执行前 ► PSW.4=0(RS1)、PSW.3=0(RS0)、 ► (01H)=30H(R1)、(30H)=33H; ► 则执行指令后累加器A即(E0H)=33H。 ► 必须注意的是 52 子系列片内 RAM 中高 128 单元的 通用寄存器只能用此方式寻 变址寻址
位寻址
PC+偏移量 @+PC,@+DPTR
程序存储器 程序存储器
片内RAM中的位寻址 区,可以位寻址的特 殊功能寄存器位
四、指令系统支持的辅助结果(1)
► 指令操作的辅助结果存放在程序状态字PSW(D0H)
之中,其一个字节的 8 位内容除 D1 位未用外,其 余各位的定义分别为: ► 1、进位标志C(D7): ► 加、减法运算有进、借位时C=1,否则C=0; ► 位处理时,作位累加器用,即存放第一操作 数与结果; ► 2、辅助进位标志AC(D6): ► 加、减法运算时低半字节的 D3 位有进、借位 时AC=1,否则AC=0; ► 3、软件标志 F0(D5): 由软件置位或复位, 归用户定义使用;
三、指令系统支持的寻址方式(5)
► 5、变址寻址:操作码中指定 16位的数据指针DPTR
或16位的程序计数器 PC作为变址寄存器,其内容与 累加器 A 中指定偏移量相加形成操作数的有效地址。 ► 例: 93H MOVC A,@A+DPTR ► 若执行指令前累加器 A即(E0H)=07H、(DPTR) =0800H、(0807H)=44H; ► 则执行指令后累加器A即(E0H)=44H。 ► 该寻址方式仅用于访问程序存储器,常用于查表获 取数据。 变址寻址指令有三条:MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR 其中前两条是程序存储器访问指令,后一条是无条件 转移指令
第三章 MCS-51指令系统
►§3-1
►§3-2
►§3-3
►§3-4
►§3-5
►§3-6
数据与寻址 数据传送类指令 数据运算类指令 逻辑操作类指令 程序控制类指令 布尔操作类指令
§3-1 数据与寻址
►一、指令的格式:
►二、指令系统支持的操作数:
►三、指令系统支持的寻址方式:
►四、指令系统支持的辅助结果:
操作码中包含R0~R7这8 个工作寄存器中某一个的序号,该工作寄存 器中的内容即为操作数本身。
E8H MOV A,R0 ► 若此指令执行前 ► PSW.4=0(RS1)、PSW.3=1(RS0)、 (08H)=22H(R0); ► 则执行指令后累加器A即(E0H)=22H。
► 例:
图示
三、指令系统支持的寻址方式(2)

一、加法指令(2)
► B、带进位相加指令: ► 1、寄存器寻址:
38~3F ADDC A,Ri ;i=0~7 ► 2、寄存器间接寻址: ► ① 36或37 ADDC A,@Rj ;j=0或1 ► 3、直接寻址: ► ① 35 nn ADDC A, Direct ► ;nn=00H~7FH或SFR地址 ► 4、立即寻址: ► ① 34 NN ADDC A,#NN ► ;NN=00H~FFH 实例
操作数紧跟在操作码之后, 无须去寄存器或存储器中取数的寻址方式为 立即寻址,该操作数称作立即数。
74H 6FH MOV A,#6FH ► 执行该指令后累加器 A(地址为 E0H)中的 内容为6FH; ► 指令中的“ # ”符号称为立即数符号,表示 其后面的内容是立即数而不是寄存器地址。
► 例:
图示
三、指令系统支持的寻址方式(4-1)
四、指令系统支持的辅助结果(2)
4、工作寄存器组选择位RS1(D4)、RS0(D3): ► 由软件置位或复位,用以选择4组工作寄存器中的一组; ► 5、溢出标志OV(D2): ► OV=1反映放回累加器 A 中的运算结果已超出补码形式表示 的有符号数表达范围(-128~+127),具体为: ► 做加、减法运算时,若最高位、次高位二位中有一位 产生进、借位,则OV位被硬件置1; ► 做乘法运算时,当积大于 255时 OV=1,否则 OV=0, 由于积的高 8位在 B中,低 8位在A中,因此当 OV=0时只要 从A中取积即可; ► 做除法运算时,若寄存器 B 中的除数为 0 则 OV=1,否 则OV=0;
►五、指令系统中使用的符号:
一、指令的格式
► 1、相关概念: ►
(1)
⑴指令: ► 计算机各功能部件能够完成的最基本动作的指 示和命令称之为指令; ► ⑵指令系统: ► 微处理器能完成的所有操作指令的集合称作该 微处理器的指令系统; ► ⑶程序: ► 用于解决某一特定问题的指令的有序组合就构 成了程序。
§3-3 数据运算类指令 (共24条)
► 一、 ► 二、
► 三、
► 四、
加法指令: 减法指令: 增减量指令: 其他算术操作指令:
8条 4条 9条 3条
一、加法指令(1)
加法指令有两数相加指令、带进位相加指令两类, ► 各有4种寻址方法指令1条: ► A、两数相加指令: ► 1、 寄存器寻址: ► ① 28~2F ADD A,Ri ;i=0~7 ► 2、 寄存器间接寻址: ► ① 26或27 ADD A,@Rj ;j=0或1 ► 3、 直接寻址: ► ① 25 nn ADD A, Direct ► ;nn=00H~7FH或SFR地址 ► 4、 立即寻址: ► ① 24 NN ADD A,#NN 实例 ► ;NN=00H~FFH
MCS-51的寻址方式和寻址空间表
序号 1 2 3 4 寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 R0~R7,A,B, DPTR,CY @RO,@R1,SP @R0,@R1,@DPTR 使用的变量 寻址空间 程序存储器 片内RAM低128位B, 特殊功能寄存器 片内RAM 片内RAM 片内RAM
一、指令的格式

(4)
⑵指令助记符格式 ► MCS-51的指令助记符格式也由指令的操作助 记符和操作数两部分组成: ► 操作助记符:一条指令所必须,它指明执行什 么操作及是否需要操作数; ► 操作数:非一条指令所必须,可以是无操作数 或既有源操作数,又有目的操作数,它指明被操作 的对象。 ► 指令助记符格式通常有相应的指令机器码格式 相对应。
图示
三、指令系统支持的寻址方式(7-1)
► 7、位寻址:
操作数是某个存储单元中的某一个二 进制位,其位地址出现在指令中; ► 可寻址的位为: ► ⑴片内 RAM 位寻址区的 20H~2FH 这 16 个单 元的128位,位地址为00H ~7FH ; ► ⑵片内 RAM 中 SFR 区的地址能被 8 整除的存储 单元(即以0、8结尾的单元)中的位; ► 例: D3H SETB C ► 执行该指令后程序状态字PSW(地址为D0H中的 最高位)中的进位标志C=1。
► ► ►
16条 2条
指令
程序存储器访问采用MOVC助记符: ② 93 MOVC A,@A+DPTR ② 83 MOVC A,@A+PC
► 三、数据存储器访问类指令:
► 四、数据交换类指令: ► 五、堆栈操作类指令:


4条 5条 2条
指令 指令
② ②
C0 nn D0 nn
PUSH Direct ; Direct =00H~7FH或SFR地址 POP Direct ; Direct=00H~7FH或SFR地址
► 2、直接寻址: ► 例:
操作码之后的地址码部分直 接给出操作数的有效地址。
E5H 30H MOV A,30H ► 若执行指令前,(30H)=11H, ► 则执行指令后A即(E0H)=11H。 ► 必须注意的是该寻址方式是按字节访问专用 寄存器时的唯一办法。
图示
三、指令系统支持的寻址方式(3)
► 3、立即寻址:
一、指令的格式
► MCS-51的指令系统: ► 255种操作代码 ► 44种助记符
(2)
► 33种基本指令功能
► 同一种功能可以由几种助记符表示
► 形成111条指令
► 指令执行时间有单、双、四机器周期
一、指令的格式
► 2、MCS-51的指令格式: ►
(3)
⑴指令机器码格式 ► MCS-51的指令机器格式完全尊循冯· 诺依曼结 构的指令格式要求,即指令由操作码和地址码两部 分组成: ► 操作码:(1字节)是一条指令所必须的,它指 明执行什么操作及是否需要操作数; ► 地址码:(0~2字节)非一条指令所必须,它 指明参与操作数据的地址。 ► MCS-51有无操作数、单操作数、双操作数指令 之分,从字节上有单、双、叁字节之分。

五、指令系统中使用的符号
2、立即数:

( 2)
#data 八位立即数 #data16 16位立即数 3、地址: Addr16 16位立即数表示的地址 Addr11 11位立即数表示的地址 Rel 8位立即数表示的偏移量,为有符号数 Bit 8位立即数表示的位地址, (包括片内 RAM中及SFR区中可寻址的位)
图示
三、指令系统支持的寻址方式(6)
► 6 、相对寻址: 操作码之后提供一个字节的偏移量,
该偏移量与16位的程序计数器 PC中内容的基地址一 起形成操作数的有效地址。 ► 例: 80H 08H SJMP rel ► 若该指令所在地址为0100H, ► 即指令执行前(PC)=0100H;设rel为08H ► 则执行指令后: ► (PC)=0100H+2+08H=010AH, ► 即下一条指令取自010AH单元。 ► 该寻址方式也仅用于访问程序存储器,常用于程序 的转移或调用等。
五、指令系统中使用的符号
►4、其他:
►@
( 3)
间址寄存器的前缀标志。 ►/ 位地址的前缀标志,表示对该位操作 数取反。 ► (x) 某寄存器或某单元中的内容 ► ((x)) 由x寻址的单元中的内容 ► 箭头左边的内容被箭头右边的内容所 取代
§3-2 数据传送类指令 (共29条)
► 一、CPU内部传送类指令: ► 二、程序存储器访问类指令:
mcs51的寻址方式和寻址空间表序号寻址方式使用的变量寻址空间立即寻址程序存储器直接寻址片内ram低128位b特殊功能寄存器寄存器寻址r0r7abdptrcy片内ram寄存器间接寻址ror1sp片内ramr0r1dptr片内ram相对寻址pc偏移量程序存储器变址寻址pcdptr程序存储器位寻址片内ram中的位寻址区可以位寻址的特殊功能寄存器位四指令系统支持的辅助结果1指令操作的辅助结果存放在程序状态字pswd0h之中其一个字节的8位内容除d1位未用外其余各位的定义分别为

四、指令系统支持的辅助结果(3)
►6、奇偶标志P(D0):
表达每次指令操作之后累加器 A 中 的“ 1 ”的个数,若 A中“ 1”的个数为 奇数个则P=1,偶数个则P=0; ► 奇偶标志常用于异步串行通讯的奇 偶校验之中。

五、指令系统中使用的符号
( 1)
1、寄存器: Ri 可用作间接寻址的寄存器,只能是 R0,R1两个寄存器,所以i=0,1 Rn 当前工作寄存器的8个通用寄存器 R0~R7,所以n=0~7 Direct 可直接寻址的片内8位地址,既可以 指片内RAM的低128个单元地址,也可 以指特殊功能寄存器(SFR)的地址或是符号 地址的名称,因此direct表示直接寻址地址。 DPTR 可用作间接寻址或变址寻址基本地址 的16位专用寄存器。
图示
三、指令系统支持的寻址方式(7-2)
► (1)片内RAM中的位寻址区
例如:MOV C, 2BH;把2BH位送入Cy (2)可位寻址的特殊功能寄存器位的表示方法 •直接使用位地址表示方法 97H •单元地址加位的表示方法 (80H).0 •特殊功能寄存器符号加位的表示方法 PSW.7 •位名称的表示方法,特殊功能寄存器中的一 些寻址位是有名称的。例如PSW寄存器位5为 F0的标志位,则可使用F0表示该位。
二、指令系统支持的操作数
1、位: 某个存储单元的某一个二进制位; 2、字节:8位无符号数, 表达范围为0~255; 3、短整数: 8位有符号数, 表达范围为-128~+127; 4、字: 16位无符号数, 表达范围为0~65535
(仅支持乘法的操作结果及地址);
三、指令系统支持的寻址方式(1)
► 1、寄存器寻址:
相关文档
最新文档