- 1、本文档共83页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 MCS-51系列单片机的指令系统 3.1 指令系统简介 3.2 寻址方式 3.3 数据传送类指令 3.4 算术运算类指令 3.5 逻辑运算及移位类指令 3.6 控制转移类指令 3.7 位操作类指令 3.1 指令系统概述 指令是规定计算机进行某种操作的命令。一台计算机所能执行的指令集合称为该计算机的指令系统。 3.1.1 指令概述 计算机内部只识别二进制数。因此,能被计算机直接识别、执行的指令是使用二进制编码表示的指令,这种指令被称为机器语言指令。 MCS-51系列单片机指令系统共有111条指令,按功能划分,可分为五大类: 1)数据传送类指令(29条); 2)算术运算类指令(24条); 3)逻辑运算及移位类指令(24条); 4)控制转移类指令(17条); 5)位操作类指令(17)。 3.1.2 指令格式 一条完整的指令格式如下: [标号:] 〈操作码〉 [操作数] [;注释] 标号—标号是该指令的起始地址,是一种符号地址。 标号可以由1~8个字符组成,第一个字符必须是字母,其余字符可以是字母、数字或其他特定符号。标号后跟分界符“:”。 操作码—指令的助记符。它规定了指令所能完成的操作功能。 操作数—指出了指令的操作对象。操作数可以是一个具体的数据,也可以是存放数据的单元地址,还可以是符号常量或符号地址等。 多个操作数之间用逗号“,”分隔。 注释—为了方便阅读而添加的解释说明性的文字, 用“;”开头。 3.1.3 指令中常用符号说明 Rn —当前选中的工作寄存器组中的寄存器R0~R7之一, 所以n=0~7。 Ri —当前选中的工作寄存器组中可作地址指针的寄存器R0、R1,所以i=0、1。 #data —8位立即数。 #data16 —16位立即数。 direct —内部RAM的8位地址。即可以是内部RAM的低128个单元地址,也可以是特殊功能寄存器的单元地址或符号。在指令中direct表示直接寻址方式。 addr11 ——11位目的地址,只限于在ACALL和AJMP 指令中使用。 addr16 —16位目的地址,只限于在LCALL和LJMP 指令中使用。 re l—补码形式表示的8位地址偏移量,在相对转移指令中使用。 bit —表示片内RAM位寻址区或可位寻址的特殊功能寄存器的位地址; @ —间接寻址方式中间址寄存器的前缀标志; C —进位标志位,它是布尔处理机的累加器,也称之为位累加器; / —加在位地址的前面,表示对该位先求反再参与操作,但不影响该位的值; (x)—由x指定的寄存器或地址单元中的内容; ((x))—由x所指寄存器的内容作为地址的存储单元的内容; $ —表示本条指令的起始地址; ← —表示指令操作流程,将箭头右边的内容送到箭头左边的单元中。 3.2 寻址方式 寻址就是寻找操作数的地址,寻址方式则指出寻找操作数地址的方式方法。 MCS-51系列单片机提供了七种寻址方式。 3.2.1 立即寻址 所谓立即寻址就是在指令中直接给出操作数。通常把出现在指令中的操作数称为立即数。为了与直接寻址指令中的直接地址相区别,在立即数前面加“#”标志。例如: MOV A,#3AH 其中3AH就是立即数,该指令功能是将3AH这个数本身送入累加器A中。 3.2.2 直接寻址 在指令中直接给出操作数地址,这就是直接寻址方式。例如: MOV A,3AH 其中3AH就是表示直接地址, 其操作示意图如图3-1所示, 直接寻址方式可访问以下 存储空间: ①内部RAM低128个字节单元。 ②特殊功能寄存器。 应注意:直接寻址是访问特殊功能 寄存器的唯一方法。 3.2.3 寄存器寻址 寄存器寻址即寄存器的内容就是操作数。因此在指令的操作数位置上指定了寄存器就能得到操作数。MOV A,R0 MOV R2,A 前一条指令是将R0寄存器的内容送到累加器A中。 后一条是把累加器A中的内容传送到R2寄存器中。 采用寄存器寻址方式的指令都是一字节的指令,可以作寄存器寻址的寄存器有:R0~R7、A、AB寄存器对和数据指针DPTR 3.2.4 寄存器间接寻址 所谓寄存器间接寻址就是以寄存器中的内容作为RAM地址,该地址中的内容才是操作数。 寄存器前加“@”标志,表示间接寻址。 例如:MOV A,@R0 其操作示意图如图3-2所示。 此时R0寄存器的内容3AH 是操作数地址,内部RAM的 3AH单元的内容65H才是操 作数,把该操作数传送到 累加器A中,结果A=65H。 能用于间接寻址的寄存器有R0,R1,DPTR,SP。其中R0、R1必须是工作寄存器组中的寄存器。SP仅用于堆栈操作。间接寻址可以访问的
文档评论(0)