- 1、本文档共114页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第3章MCS-51系列单片机的指令系统
3.1指令格式及分类
3.2寻址方式
3.3数据传送类指令
3.4算术运算类指令
3.5逻辑操作与移位操作类指令
3.6位操作类指令
3.7控制转移类指令
习题与思考题
3.1指令格式及分类
3.1.1指令格式
由于用二进制编码表示的机器语言指令不便于阅读、理解
和记忆,因此,在微机控制系统中采用汇编语言(用助记符和专
门的语言规则表示指令的功能和特征)指令来编写程序。
一条汇编语言指令中最多包含四个区段:
[标号:]操作码助记符[目的操作数][,源操作数][;注释]
例如,把立即数F0H送累加器的指令为
START:MOVA,#0F0H;立即数F0H→(A)
标号区段是由用户定义的符号组成,必须由英文字母开始,
标号区段可缺省。若一条指令中有标号区段,标号代表该指令
第一个字节所存放的存储器单元的地址,故标号又称为符号地
址,则在汇编时把该地址赋值给标号。
操作码区段是指令要操作的数据信息,根据指令的不同功
能实现不同的操作。如数据传送、算术运算、逻辑运算、程序
转移、调用子程序等。
操作数区段表示参加操作的操作数本身或操作数所在的地址。
不同类型的指令,操作数也不相同,可以有三个、两个、
一个或没有操作数。上例指令中操作数区段包含两个操作数A
和 #0F0H,它们之间由逗号分隔开。其中第二个操作数为立即
数F0H,它是用十六进制数表示的以字母开头的数据,为区别
于操作数区段出现的字符,故在字母开始的十六进制数据前面
都要加0,把立即数F0H写成0F0H(这里H表示此数为十六进制数,
若后缀为B则表示二进制,十进制后缀为D或省略)。
注释区段可缺省,对程序功能无任何影响,只用来对指令
或程序段作简要的说明,便于他人阅读,在调试程序时也会带
来很多方便。
值得注意的是,汇编语言程序不能被计算机直接识别并执
行,必须经过一个中间环节把它翻译成机器语言程序,这个中
间过程叫做汇编。汇编有两种方式:机器汇编和手工汇编。机
器汇编是用专门的汇编程序在计算机上进行翻译,手工汇编是
编程员把汇编语言指令通过查指令表逐条翻译成机器语言指令,
现在主要用的是机器汇编,但有时也用到手工汇编。
在MCS-51指令系统中有42种助记符代表了33种操作功能,
这是因为有的功能可以有几种助记符(例如数据传送的助记符
有MOV,MOVC,MOVX)。指令功能助记符与操作数各种可
能的寻址方式相结合,共构成111种指令。在这111种指令中,
按字节分类为单字节指令49条,双字节指令45条,三字节指令
17条;若从指令执行的时间看,单机器周期(12个振荡器周期)
指令64条,双机器周期指令45条,四机器周期指令2条(乘、除)。
在12 MHz晶振的条件下,执行时间分别为1、2、4 μs。由此可
见,MCS-51指令系统具有存储空间效率高和执行速度快的特
点。
3.1.2指令分类
按照不同的分类方式,111条指令可有不同的分类方法。
比如,按照每条指令的字节数不同,可分为单字节指令、双字
节指令及三字节指令等;按照指令执行时需要的机器周期不同,
可分为单周期指令、双周期指令及四周期指令;按照指令的不
同寻址方式来区分,可分为立即数寻址、寄存器寻址和寄存器
间接寻址等。一般情况下,为了学习和讲解方便,本书采用按
照指令的功能区分,将MCS-51指令系统可分为五类:数据传
送类、算术运算类、逻辑操作类、位操作类和控制转移类。
本章3.3~3.7节将根据指令的功能特性分类介绍,在分类
介绍之前,先对描述指令的一些符号作简单的说明。
Rn——表示当前工作寄存器区中的工作寄存器,n取0~7,
表示R0~R7。
direct——8位内部数据存储单元地址。它可以是一个内部
数据RAM单元(0~127)或特殊功能寄存器地址或地址符号。
@Ri——通过寄存器R1或R0间接寻址的8位内部数据RAM
单元(0~255),i=0,1。
#data——指令中的8位立即数。
#data16——指令中的16位立即数。
addr16——16位目标地址,用于LCALL和LJMP指令,可
指向64 KB程序存储器地址空间的任何地方。
addr11——11位目标地址,用于ACALL和AJMP指令,转
至当前PC所在的同一个2 KB程序存储器地址空间内。
rel——补码形式的8位偏移量,用于相对转移和所有条件
转移指令。偏移量相对于当前PC计算,在 -128~+127
文档评论(0)