- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 MCS-51单片机的指令系统 5)循环指令 RL A ;将A中的值逻辑左移 RLC A ;将A中的值加上进位位进行逻辑左移 RR A ;将A中的值进行逻辑右移 RRC A ;将A中的值加上进位位进行逻辑右移 2.2.4 子程序调用与转移类指令 共有14条指令: 子程序调用类有绝对调用和长调用。 转移类分为无条件转移和条件转移。01010101 左移RL * * MCS-51单片机的指令归类: 111条指令分为6类;分别为: 1)数据传送与交换指令 2)算术运算类指令 3)逻辑运算与循环类指令 4)子程序调用与转移类指令 5)位操作类指令 6)CPU控制类指令 MCS-51单片机指令系统的特点: 指令速度快。111条指令中,64条指令执行周期为1个机器周期,45条指令执行周期为2个机器周期,仅2条指令执行周期需要4个机器周期。 指令短。 111条指令中,49条指令为单字节指令(即一条指令可译成一个单字节的机器码),45条指令为双字节指令, 17条指令为三字节指令。 一条指令就可以实现2个单字节数据的四则运算。 有丰富的位 操作指令。 可直接用传送指令(MOV)实现端口的输入/输出。 2.1 MCS-51单片机的寻址方式 MCS-51单片机的寻址(如何找到操作数的存放地址)方式分为7类: 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址 MOV A 78H 目的操作数 源操作数 指令 2.1.1 立即寻址 立即寻址为在指令中直接给出操作数的“寻址”方式。如:MOV A,#78H 又如 MOV A,#0F7H 2.1.2 直接寻址 直接寻址为在指令中直接给出操作数地址的寻址方式。如 MOV A,78H MOV A, 0F8H 2.1.3 寄存器寻址 寄存器寻址为以通用寄存器中的内容为操作数的寻址方式。如:MOV A,R0; 通用寄存器包括:A,B,DPTR,R0~ R7 不能用字母作为数值的开头 (作业:将其译成机器码) (R0) A 2.1.4 寄存器间接寻址 寄存器间接寻址为以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。如:MOV A,@R0; ,能用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP;其中R0,R1为工作寄存器组中的寄存器。可以使“地址” 由程序控制 2.1.5 变址寻址(针对RAM而言) 变址寻址为由基址寄存器PC和DPTR加上偏移量寄存器A中内容之后形成操作数地址的寻址方式。 如:MOVC A,@A+DPTR; 可以使“程序的走向” 被灵活控制 变址寻址只能对“程序存储器”中的数据(指令)作寻址操作。 2.1.6 相对寻址(针对RAM而言) 相对寻址是以程序计数器PC的内容为基值,加上指令给出的一字节补码数形成的PC值的寻址方式。可以使“程序” 被灵活控制 ((R0)) A ((A+DPTR)) A 2.1.7 位寻址(针对RAM) 位寻址是对位地址中的内容做位操作的寻址方式。 如:SETB 88H 2.2 MCS-51单片机的分类指令 本文中的操作数及注释中的符号说明: Rn:当前指定的工作寄存器组中的R0--R7(n=0,1,2….) Ri:当前指定的工作寄存器组中的R0,R1(i=0,1)。 (Ri): Ri中的内容。 ((Ri)):Ri间接寻址指定的地址单元中的内容。 Dir:8位直接单元地址。 (Dir):8位直接单元地址中的内容。 #data8:8位立即数。 #data16:16位立即数。 Addr16:16位地址值。 Addr11:11位地址值。 Bit:位地址。 Rel:相对偏移量(用一字节补码数表示) 2.2.1数据传送与交换类指令: 共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指令;数据交换指令以及堆栈操作指令。 1) 以累加器A为目的操作数的指令 MOV A, Rn Rn A MOV A, dir (dir) A MOV A, @Ri ((Ri)) A MOV A, #data 执行后 A的内容是data 举例说明(注意:此为copy式传送) MOV A, R1; 将R1中的内容送入A。 MOV A, 30H; 将30H单元中的内容送入A。 MOV A, @R1; 将R1所规定的地址单元中的内
文档评论(0)