新第7讲 单片机指令系统.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章MCS-51系列单片机指令系统 指令是规定计算机执行特定操作的命令。具体而言,指令由CPU执行,CPU就是根据指令来指挥和控制微机各部分协调地动作,以完成规定的操作。计算机全部指令的集合叫作计算机指令系统,指令系统准确定义了计算机的处理能力。 以二进制代码形式存在指令叫做机器码指令。 机器码指令的优点是能被CPU直接理解和执行。缺点是编程烦琐、不直观、难记忆、易出错。 为克服机器码指令的缺点,人们通常用助记符(几个字母构成的符号)来代替机器码指令。助记符与机器码指令之间有一一对应的关系,助记符即所谓汇编指令。 汇编指令与机器指令并无本质区别。由于CPU只能执行机器指令, 汇编指令必须先“汇编”成机器指令才能被CPU执行。 本章将详细介绍MCS-51的指令系统。 7.1 概述 7.1.1 指令格式 单片机汇编语言指令语句由标号、操作码、操作数和注释四项组成。其格式如下: LOOP: MOV A,#26H ;① ② ③ ④ [标号:] 操作码 [操作数] [;注释] 说明: 1、凡用标有“[ ]”的项为可选项,标有“ ”的项为必选项; 2、各项之间之间必须用空格或制表符隔开; 3、各项功能。 ①标号是指令的符号地址,代表指出该指令机器码所在程序存储器单元的首地址; ②操作码项规定了指令的操作功能,常用助记符表示。 ③操作数是指令的操作对象。操作数分为目标操作数(上例中的累加器A)和源操作数(上例中的#26H)。目标操作数在左,源操作数在右,中间用逗号“,”隔开,书写顺序不能颠倒。操作数可以是数字(地址、数据),也可以是标号或寄存器名等。 ④注释项是对指令功能作的说明,便于阅读和维护。 7.1.2 指令的描述约定 为便于单片机指令系统的学习,先对描述指令的一些符号进行说明。 Rn——当前选中的寄存器区的8个工作寄存器(n=0…,7)。 Ri——当前选中的寄存器区中可作为址寄存器的两个寄存器(i=0,1) direct——内部数据存储单元的8位地址。 #data——指令中的8位常数。 #data16—指令中的16位常数。 addr16——用于LCALL和LJMP指令中的16地址,目的地址的空间为64kB程序存储器地址。 #addr11——用于ACALL和AJMP指令中的11地址,目的地址必须放在与下条指令第一个字节同一个2kB程序存储器空间之中。 rel——8位带符号的偏移,用于所有的条件转移和SJMP等指令中,偏移字节下条指令的第一个字节-128~+127。 @——间接寄存器。——片内RAM或特殊寄存器的直接寻址位地址 /——位操作该位取反。 (x) ——地址单元中的内容。 ((x)) ——。——当前指令第一个字节的地址 ←——数据传输方向。可理解为箭头左边的内容被箭头右边的内容所取代。 ←→——数据交换。箭头两侧的内容互换。 7.1.3 寻址方式 寻址即MCS-51单片机指令系统有7种寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。功能强大,灵活。立即寻址 指令中直接给出一个8位或16位的二进制常数(立即数)参与操作,用#data表示。例 助记符: MOV A ,#85H ;A←#H 机器码: 74 85 ;双字节指令 该指令的功能是将立即数H送入累加器A中。MOV DPTR, #2008H ;DPTR← #08H 机器码:90 20 08 ;三字节指令 该指令的功能是将立即数08H送入数据指针寄存器DPTR中。直接寻址 指令中给出的操作数内的地址,地址单元中真正被操作的对象。直接地址有direct表示。 直接寻址方式只适于内部RAM的数据传送。例MOV A,4H ;A ←(4H) 内部RAM4H单元的内容送入累加器A 。注意:指令中出现的以字母A~F头的十六进制数(立即数、单元地址或其),均需加前导0。 寄存器寻址 指令中给出的操作数是一个寄存器,在此寄存器中存放着真正被操作对象。INC R2 ;R2←(R2)+1 将R2工作寄存器的内容加1后送回R2。如果。 寄存器间接寻址 指令中所给出的操作数是Ri或@DPTR的形式。MOV A,R0 ;A←((R0)) 该指令的功能是以R0中所提供的内容为地址,将该地址单元的内容()送入累加器A中。如果(R0)=H , (H)=H ,该指令的执行MOVX A,A←((DPTR)) 该指令的功能是以中的内容为地址,将地址单元的内容()送入累加器A中。如果()=H,(H)=H ,该指令执行。变址寻址种寻址方式是以16位程序计数器PC或数据指针寄存器DPTR作为基地址寄存器,以累加器A作为变址寄存器,将基地址寄

文档评论(0)

00625 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档