- 1、本文档共135页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 单片机的指令系统 2.1 指令系统概述 2.2 寻址方式 2.3 指令功能介绍 2.4 小结 习题 本章学习目标 通过对本章的学习,读者应具备以下能力: 熟练掌握不同寻址方式以及汇编指令的用法 掌握伪指令的使用以及汇编语言程序的完整格式 掌握算术运算类指令对PSW各标志位的影响 理解汇编语言程序的执行过程 2.1 指令系统概述 一种计算机所有指令的集合,称为该计算机的指令系统。它是表征计算机性能的重要标志。各类计算机都有专用的指令系统。 2.1.1 指令分类 MCS-51单片机共有111条指令,有几种不同的分类方法。 (1) 按指令功能分类,如图2-1所示。 图2-1 按指令功能分类图 (2) 按指令字长分类,如图2-2所示。 图2-2按指令字长分类图 (3) 按指令执行时间分类,如图2-3所示。 图2-3 按指令执行时间分类图 2.1.2 指令格式 用MCS-51单片机汇编语言表示的指令格式如下: [标号]: 操作码[目的操作数],[源操作数]; [注释] 一条汇编语句是由标号、操作码、操作数和注释部分组成的,其中方括号中的部分是可选项。 例如: AA: ADD A, #10H ;执行加法操作 AA: 为标号,ADD为操作码,A与#10H为操作数,“;”后面为注释部分。 用汇编语言编写程序时,应注意以下几个问题: (1) 标号 标号是语句地址的标志符号。有关标号的规定如下: ① 标号由1~8个字母或数字组成,可以使用一个下划线符号“_”。 ② 第一个字符必须是字母。 ③ 指令助记符或系统中保留使用的字符串不能作为标号。 ④ 标号后面必须跟一个冒号。 ⑤ 一条语句可以有标号,也可以没有标号。标号的有无取决于本程序中其他语句是否需要访问这条语句。 以下是合法的标号 以下是不合法的标号 LOOP1: 5LOOP: (第一个字符是 数字) START: A*5: (“*”不能在标号中出 现) Q4_: ADD: (指令助记符) SSS: START(无冒号) L123: (超过8个字符) (2) 操作码 规定语句执行的操作。操作码是以指令助记符或伪指令助记符表示的。操作码是汇编指令中惟一不能空缺的部分。 (3) 操作数 用于给指令的操作提供数据或地址。在一条指令中,操作数可以为1项、2项或3项,各操作数之间用逗号隔开,操作数也可能空缺。 例如: LOOP: INC A ;1项操作数 ADD A,#50H ;2项操作数 CJNE A,#5,LOOP ;3项操作数 RET ;无操作数 (4) 注释 注释不属于语句的功能部分,它只对语句进行解释说明。在程序汇编时注释字段不被汇编,可有可无,只起说明作用。注释内容以“;”开头。 (5) 分隔符 分隔符用于分割语句的各个部分,以便于区分。冒号“: ”用于标号之后;空格用于操作码和操作数之间;逗号“,”用于操作数之间;分号“;”用于注释之前。 2.1.3 指令字长和指令周期 为节省存储空间,MCS-51单片机采用变字长指令方式。按8位二进制数为一个字节,指令字长有单字节、双字节和三字节3种,在存储单元中分别占1~3个单元。 指令周期是指执行一条指令所需要的时间。指令字节数越多,所占存储单元则越多,但指令周期并不与指令所占字节数成比例。 2.2 寻址方式 寻址方式是指CPU寻找操作数或操作数地址的方式。计算机执行程序的过程是不断地寻找操作数并进行操作的过程。MCS-51单片机共有7种寻址方式,分述如下。 2.2.1 直接寻址 1. 寻址范围 指令中直接给出操作数所在的单元地址,它的寻址范围为单片机内部RAM。 (1) 内部RAM低128单元。在指令中直接以单元地址形式给出,地址范围00H~7FH; (2) 特殊功能寄存器SFR。直接寻址是SFR惟一的一种寻址方式。SFR可以以单元地址给出,也可以用寄存器符号形式给出(A、AB、DPTR除外)。 2. 使用注意事项 (1) 寻址特殊功能寄存器SFR时,可以用直接地址,也可以用寄存器名。 例如: MOV A, 0D0H ;A←(D0H) MOV A, PSW ;A←(PSW) 这两条指令汇编后机器码完全一样,均为E5D0H,其中D0H为程序状态字PSW寄存器的物理地址。物理地址D0前要加0(凡以字母A~F开头的十六进制数均需加前导0)。 (2) 在MCS-51单片机指令系统中,累加器A有三种不同的表达方式,即A、ACC和E0H,分属不同的寻址方式,但指令的执行结果完全相同。 例如: INC A ;寄存器寻址方
文档评论(0)