- 1、本文档共143页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 MCS-51单片机的寻址方式和指令系统 主讲:喻萍 二0一一年三月 内容: 3.1 MCS-51指令概述 3.2 寻址方式 3.3 指令系统 3.1 MCS-51指令概述 指令:是规定计算机进行某种操作的命令 。 指令系统:计算机所执行的全部指令的集合。(指令系统功能决定计算机的智能,一般说指令系统越丰富,计算机的功能也越强。) 指令代码(机器码):在计算机中指令都是以二进制代码形式表示和存放的,这种二进制代码称为指令代码。 5、指令格式:一条指令对应着一种基本操作,因此指令通常包含操作码、操作数两部分。 ① 操作码:指明执行什么性质和类型的操作。 ② 操作数:指明参与操作的数或数的存放地址。 操作码 [操作数1] [,操作数2] [,操作数3] [ ]表示其中内容可以没有 6、指令代码的三种格式: 指令代码是指令的二进制表示方法,是在程序存储器中存放的指令编码格式,共三种格式 。 单字节指令 (两种格式) 3.2 寻址方式 一、立即寻址 二、寄存器寻址 三、直接寻址 四、寄存器间接寻址 一、立即寻址 操作数放在指令中,紧跟在操作码后面, 用“#”号表示 。 例1:MOV A,# 60H ;A←#60H 例2:MOV DPTR,# 3400H 功能: DPTR←#3400H 二、寄存器寻址 指出某一寄存器的内容作为操作数 寄存器指A、B 、DPTR、CY以及R0~R7 R0~R7用寄存器的编码000~111选定 A、B 、DPTR、CY隐含在操作码中 例1、MOV A,R0 ;(R0)→A 例2、ADD A,R1 ;(A)+(R1)→A 例3、INC R0 ; (R0)+1→(R0) 例3、INC R0 ; (R0)+1→(R0) 三、直接寻址 指令直接给出操作数的有效地址,不用“#”号表示。 能直接寻址的存储空间(只在内部): 1、RAM内部数据,地址00H~7FH 2、SFR寄存器,地址80H~FFH 至少是双字节指令 例1:MOV A,3AH ;(3AH) →A 表示把片内RAM中3AH单元的内容送累加器A。 例2:MOV A,90H (MOV A,P1 ) 90H可用寄存器符号P1表示 功能:表示把P1口的内容送到A ;(P1)→A 四、寄存器间接寻址 指令指出某一寄存器的内容作为操作数的地址,用符号@表示。 操作数的地址要事先放在指定的寄存器中。 如:R0、R1、DPTR、SP为间址寻址寄存器 能进行寄存器间接寻址的存储空间有: @R0、@R1寻址片内RAM的128字节单元 @DPTR、@R0、@R1寻址片外64kB存储器空间 SP寻址堆栈区的单元 例1:MOV @R0, A 例2:MOV A,@R1 已知: (R1)=10H, (10H)=45H MOVX @DPTR,A 五、基址+变址寻址 是指基址寄存器内容加上变址寄存器内容之和作为操作数的有效地址。两者之和为16位的地址 基址寄存器:PC或DPTR 变址寄存器:累加器A (A为无符号数) 能进行基址+变址寻址的存储空间只有: 程序存储器中数据 由于程序存储器是只读的,因此基址+变址寻址只有读操作而无写操作。 例如指令: 1、MOVC A,@A+PC ; ((A)+(PC))→A 2、MOVC A,@A+DPTR; ((A)+(DPTR))→A 指令MOVC A,@A+DPTR;执行示意图 六、相对寻址 以当前PC的内容为基准,加上指令给出的偏移量(rel)形成新的PC值(转移地址)的寻址方式。 转移地址=目的地址 =当前(PC)+rel 目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel 例如: SJMP rel SJMP 08H 功能:PC←PC+2+08H 已知:(PC)=2000H (rel)=08H 转移地址:(PC)=200AH SJMP 08H 相对寻址示意图 七、位寻址 位寻址只能对有位地址的单元作位寻址操作。 位寻址其实是一种直接寻址方式,不过其地址是位地址。 例如: MOV 32H,C ;32H←进位C 3.3 指令系统(111条) 按执行时间: 单周期:64 双周期:45 四周期:2 若fosc=12MHz,大多指令执行仅1μs 按照指令的功能分5大类 一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条) 在描述指令
文档评论(0)