- 1、本文档共100页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 MCS-51指令系统.ppt
MCS-51单片机原理与应用 第4章 MCS-51指令系统 本章导读 本章主要介绍MCS-51的指令系统。首先介绍MCS-51的7种寻址方式,学好寻址方式,是学习指令的前提。按指令种类计算,MCS-51共有111条指令,其中49条单字节指令,45条双字节指令,17条三字节指令;按运算速度分类,有64条单周期指令,45条双周期指令,2条四周期指令。 4.1 指令系统概述 指令:是规定计算机进行操作的命令。 指令系统:计算机能够执行的各种指令的集合。本章介绍的MCS-51指令系统是最普遍的。 4.1.1 机器指令与汇编语言指令 机器指令:以二进制代码表达,能直接被计算机所识别和执行。指令由操作码和操作数两部分组成,前者告诉CPU要执行什么操作,后者指示参加操作的数据或数据所在地址。在单灯闪烁主程序中,使P1.0清零的机器指令如表4.1中第4列第2行所示,其中C2就是操作码,指示CPU执行清零操作,90就是操作数,即执行清零操作的地址是P1.0(见表3.4)。机器指令难以被人们理解、记忆与使用 4.1 指令系统概述 2 汇编语言指令:用便于记忆与理解的助记符和符号地址来表达的指令。使P1.0清零的汇编语言指令如表4.1中第2列第2行所示,其中助记符CLR(clear缩写)就是操作码,P1.0就是符号地址。汇编语言指令与机器指令之间有一一对应的关系,如表4.1单灯闪烁部分程序。 4.1.2 汇编语言指令格式 1 指令格式:指令的表示形式。指令由操作码和操作数组成,操作数是可选项,还有源、目之分,指令格式举例: 操作码 [目的操作数] [源操作数] MOV A, #30H 操作码:由MCS-51关键字表示的字符串,用来指示指令的操作功能,比如MOV指示CPU执行数据传送操作。操作码与操作数之间必须用空格分隔。 操作数:指示参加指令操作的数据或数据的地址,与操作码一起确定了指令所要执行的具体操作。操作数如果有2个或多个,则操作数之间必须用逗号分隔。操作数可以是寄存器名、常数、标号名;还可是表达式,如ADD A,‘A’+1;也可用PC的当前值“$”,如SJMP $。 4.1.3 指令系统标识符 1 指令的书写必须遵循的标识符的约定,如表4.2所示。 4.1.3 指令系统标识符 2 注:除了附录B外, 在注释指令功能时,为了简捷明了,对操作数表述作了如下处理: (1)((Rn))→(Rn),如(A) → A。 (.2)对直接地址direct的括号仍予保留,如要表示30H单元的内容仍用(30H)。这样在注释立即数#data时,可省去前缀的#,如立即数#30H,可以简写为30H。 4.2 寻址方式 寻址方式:寻找操作数地址的方式。寻址方式越丰富,CPU的功能就越强,灵活性就越大。 MCS-51单片机的指令系统中,设有7种寻址方式,在同一条指令中的源、目操作数,可能有不同的寻址方式,下面以源操作数寻址方式为例来加以阐述。 4.2.1 立即寻址 2 立即寻址是指参加运算的操作数已经在指令中直接给出,这种形式的操作数称为立即数。立即数要前缀“#”,以区别直接地址。立即寻址举例如表4.3, 机器指令可由人工汇编得到,也可通过,Keil μVision3汇编后得到(见后缀为“.LST”列表文件)。从本节开始,表中机器指令和图中字节单元中的16进制数字后省略后缀H。 立即寻址一般为双字节指令,如表4.3的第1条指令,操作码74占一个字节,操作数30为8位立即数,也占一个字节。 4.2.1 立即寻址 3 第1条指令MOV A,#30H的寻址过程如图4.1(a), A←30H,把立即数30H送到累加器A。 第2条指令MOV DPTR,#3000H含有16位立即数,为3字节指令,操作码90占一个字节,立即数3000占二个字节,其寻址过程如图4.1(b), DPH←30H,立即数高8位30H送DPH, DPL←00H,立即数低8位00H送DPL。 4.2.2 直接寻址 1 直接寻址是指指令中直接给出操作数的地址,即给出了参加运算或传送的数据在内存单元的地址。直接地址只能用来表示片内RAM、位地址空间以及SFR,位地址与SFR只能用直接寻址方式来访问,表4.4,给出了对这三类存储空间访问举例。 第1条指令是双字节指令,设分别放在ROM区30H和31H中。操作码E5指示CPU,按照下一字节单元中内容40为 4.2.2 直接寻址 2 地址, 把片内RAM单元40H中的内容送到累加器A中去,即A←(40H), 寻址过程如图4.2(a)。第2条指令设放在ROM区30H和31H单元中。操作码A2指示CPU,按照下一字节中的内容40为位地址, 把40H位单元中的内容送到位累加器CY中,即CY←(40H) ,位直接寻址过程如图4.2(
文档评论(0)