版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章MCS-51单片机的指令系统,本章中为MCS-51单片机的指令格式、地址方式(即时地址、直接地址、寄存器地址、寄存器间接地址、基地址索引寄存器包括隐式地址等7种方式)、指令系统本章的学习,要求学生熟练掌握MCS-51单片机的指令功能和应用。 指令格式、指令的显示方法称为指令格式,其内容包括指令的长度和指令内部信息的配置等。 一个命令通常由操作码和操作数两部分组成。 操作码规定命令完成的操作,操作数表示操作的对象。 操作数可以是特定数据,也可以是表示获取数据的地址或符号。单片机执行指令的过程、单片机执行指令的过程,分为取指令过程和执行指令过程两个基本内容。 在取得指示的阶段,单片机从程序存
2、储器中取出指令操作码并发送到指令寄存器IR,通过指令解码器的解码产生一系列的控制信号。 在指令执行阶段,利用由指令解码产生的控制信号,进行本指令的规定操作,51指令系统为51系列单片机专用,具有255种操作码(00H中除FFH、A5H以外)的集合。 汇编语言表现操作代码时,42种助记符表示33种功能,既有数据传输等功能,也有MOV、MOVC、MOVX等一些助记符。 指令功能助理和操作数的各种地址方式可以组合来构成111种指令,对应于同一指令的操作码最多可以是8种(例如指令中的Rn对应寄存器R0R7)。 3.1、寻址:检索指令给出的操作数或操作数所在地址的方法。 执行任何命令都需要操作数。 89
3、S5l指令系统有7种寻址方式。 即时地址是指令直接赋予操作数,指令中出现的操作数称为即时数。 必须在即时数之前加上前缀“”。 例如,命令MOV DPTR和1234H命令功能:向数据指针DPTR传输16位即时随机数1234H。2直接地址将操作数单元的地址直接给予指令。 例如,如图所示,命令MOV A、3AH功能:向累加器a传输片上RAM的3AH单元内的数据。 直接地址方案仅提供8比特的地址,且限于芯片上RAM :低至128个小区,而在指令中以直接小区地址形式提供。 特殊功能寄存器除了可以以小区地址形式给出外,还可以以寄存器符号形式给出。 直接寻址是访问特殊功能寄存器的唯一方法。 在、3寄存器地址
4、指定指令中,将指定寄存器的内容设为操作数。 在寄存器地址方式中,用符号名表示寄存器。 例如,指令INC R0功能:对寄存器R0的内容加1,返回到R0。 由于操作数在R0处被指定了R0,所以操作数也可以如所示得到。 (1)四个寄存器组的校正前的32个通用寄存器构成。 指令中只能使用当前的寄存器组。 通过指定PSW的RS1、RS0,选择使用的当前寄存器组。 (2)部分特殊功能寄存器。 例如,累加器a、AB寄存器对及数据指针DPTR。4寄存器间接地址命令给出的寄存器内容是操作数的地址,从该地址取出的是操作数。 寄存器间接地址也必须作为寄存器符号名表示。 在寄存器间接地址中,在寄存器的名称前加前缀“”
5、。 例如,指令ANL A、R1的R1寄存器的内容为60H,指令的功能是将R1寄存器的内容为60H作为地址,将60H地址单元的内容与累加器a中的数相“and”,其结果保持保存在a中,其功能参照附图、寄存器间地址的地址范围:片上RAM的低128个单元只能采用R0或R1作为间地址寄存器。 其形式为ri (I 0,1,1 )。 片外RAM中的64 KB单元将DPTR用作行间地址寄存器。 例如: MOVX A、DPTR。片外RAM低256个单元,使用R0或R1作为间隔剔除寄存器。 例如: MOVX A,R0。 堆栈区域:堆栈操作命令PUSH和POP是将SP作为间隔剔除寄存器的间接地址方式。 相对地址赋予
6、指令的操作数是程序迁移的偏移量。 在相对转换命令中,给出地址偏移量(由“rel”表示)并且将偏移量加到PC的当前值上是程序转换的目的地地址。 传输目的地地址在传输目的地地址(存在传输命令的地址传输命令字节数) rel为51的命令系统中有大量的相对传输命令,这些命令中多数是2字节命令单独只有3字节的命令。 偏移量(rel )是8比特的带符号二进制乘数,可以表示的范围是- 128到127。 因此,以相对传输命令的位置地址为基点,传输到最大可能传输(127传输命令字节数)个单元地址、最大可能传输(128传输命令字节数)个单元地址。 例如,当进位位c为0时,命令JC 80H将2加到程序计数器PC的内容
7、,即,顺序前进到下游。 当进位比特的数目c是1时,将程序计数器PC的当前值用作基本地址,将通过加上偏移量80H而获得的结果用作转变指令的目的地地址,并且在图中示出执行图像。 指令的操作代码有1000H单元,偏移量有1001H单元。 执行该命令后,程序计数器PC指向1002 H (即当前值)。 这里,因为80H是128,所以1002H和128 (80H )被相加(互补运算),并获得转换地址0F82H。6索引地址以DPTR或PC为基地址寄存器,以累加器a为索引寄存器,将两者的内容相加后的16位的程序存储器地址作为操作数地址。 也称为基地址寄存器索引寄存器间接地址。 例如,MOVC A,ADPTR功
8、能:将加上了DPTR和a的内容的程序存储器地址单元的内容发送到a,假定指令执行前: (A)54H,(DPTR)1256H参照该指令的操作模式图。 索引地址的操作数地址为1256H54H12AAH,如果12AAH单元的内容为00H,则该指令的执行结果为a的内容为00H。89S51命令系统中的索引地址命令的特征是,索引地址方式只能对程序内存进行地址。 索引地址指定命令只有3条MOVC A、ADPTR MOVC A、APC JMP ADPTR这3条命令是单字节命令。 索引寻址方法用于查找表操作。7位地址位地址的地址范围: (1)片上RAM内的位地址区域。 片上RAM的单元地址为20H2FH,合并为1
9、6单元128位,在位地址区域,位地址为00H7FH。 例如,MOV C和2BH命令的功能是将比特地址区域中的2BH比特状态传输到累计比特c。 (2)位可寻址的特殊功能寄存器位。 位可寻址的特殊功能寄存器共有11个,地址位为83位,地址位在指令中有以位地址直接表现的4种表现方法。 单元地址加位。 例如,88H单元的位5显示为88H.5。 例如PSW寄存器的比特5的特殊功能寄存器码加比特可被表示为PSW .5。 位名表示方法,特殊功能寄存器中的一些地址位是命名的。 例如,如果PSW寄存器位5是F0标志位,则该位可以用F0表示。 关于指令中的操作数,由于指令操作伴随着经常从右向左传输数据的内容,所以
10、将左侧的操作数称为目标操作数,将右侧的操作数称为源操作数。 表31总结了89S51指令系统的7个地址方式。7 .隐式寻址操作数的地址隐式包含在操作码中,无需指定。 这被称为隐式寻址。 明显不是提供操作数地址,而是命令中隐含操作数地址,即要检索的地址包含在操作码中。 例如,在单地址指令格式中,提供第二操作数的地址不明确,而将累加器隐式地规定为第二操作数的地址。单字节指令只有一个字节,操作码和操作数位于同一字节。与MOV A类似,Rn命令机代码是单字节11001rrr。 其中,rrr可以表示为000111,分别表示R0R7, 双字节命令:一个字节是操作码,另一个字节是操作数。 对于MOV A,#d
11、ata 8位即时数data需要1字节,操作码也需要1字节。 3字节指令:操作码为1字节,操作数为2字节。 其中,操作数可以是数据或地址。 需要例如ANL direct,#data命令的3字节、第一字节是操作码,第二字节是8位直接地址direct,而第三字节是8位即时数据。 从指令执行时间来看,单机周期指令为64种,双机周期指令为45种,仅相乘除法指令的执行时间为4机周期。 在12MHz的水晶振动条件下,89S51的指令执行时间分别为1S、2S、4S。指令分类89S51的指令系统有111个指令,可以根据其功能分为5种:数据传输系指令(28条)算术运算系指令(24条)逻辑运算系指令(25条)控制转
12、移系指令(17条)布尔运算(位)类指令(17条) 命令系统中使用的符号说明,Rn n07表示当前寄存器组的8个通用寄存器R0R7中的一个。 Ri i0,l是可以用作间接地址的寄存器,只是R0,R1这两个寄存器中的一个,direct内部的8位地址既指芯片上RAM的下位128单元地址,也指特殊功能寄存器的地址或符号名#data指令中包含的8位即时数。 #data16指令中包含的16位即时数。addr16 16位目标地址仅适用于LCALL和LJMP命令。 addr11 11位的目标地址仅用于ACALL和AJMP指令。 rel相对转移指令中的偏移量为8位带符号数。 用于SJMP和所有条件转换命令。 转
13、换范围是对于以下命令的第一个字节地址的-128127 : DPTR数据指针。 位芯片内RAM (包括部分特殊功能寄存器)的直接地址位。a蓄能器。 BB寄存器。 c进制标志位是布尔处理器中的累加器位,也称为累加器位。 间地址寄存器的前缀标志。 /位地址的前缀标志。 表示反转此位操作数。 () 某寄存器或某单元的内容。 ()寻址设备中的内容。 箭头左侧的内容被箭头右侧的内容替换。 (1)标签:用户定义的符号地址。 (2)操作码:这个字段是必不可少的,指令进行怎样的操作,即显示操作的性质。 (3)操作数:此字段可能存在,也可能不存在。 (4)注释:此字段不是汇编语言的功能部分,只提高程序的可读性。
14、在评论前加上“;” 1、内部数据传送命令、(1)将累加器a作为目的地的命令操作MOV A、Rn (A)(Rn) MOV A、direct (A)(direct) MOV A, ri ()源操作数的地址方式分别是寄存器地址、直接地址、寄存器间接地址和即时地址方式、(2)将rn作为目标地址的命令操作MOV Rn、A (Rn)(A) MOV Rn、direct(rn)(direct )的源代码(3)以直接地址为目的地的命令操作MOV direct,A (direct)(A) MOV direct,Rn (direct)(Rn) MOV direct,ri () direct2(direct1) (d
15、irect2) mov direct,# data 源操作数的地址方式分别为隐式地址方式、发送机地址方式、发送机间地址方式、直接地址方式、即时地址方式。 将寄存器间地址作为目的地的指令MOV Ri,A (Ri)(A) MOV Ri,direct (Ri)(direct) MOV Ri,#datter源操作数的寻址方法分别为隐式寻址、直接寻址和即时寻址。 注意,目标操作可以是a、direct、Rn和Ri中的任何一个,并且源操作可以是a、direct、Rn、Ri和#data中的任何一个。 #data无法进行目标操作。 目的操作和源操作不能同时出现Rn、Ri。 目标操作和源操作不能同时为a。 目标操作和源操作可以同时为direct类型。 目标操作和源操作的数据长度必须一致。 2 .外部数据传送命令、(1) 16位数据传送命令操作MOV DPTR、#data16 (DPTR) data16 (2)外部RAM数据传送命令MOVX功能:实现片外数据存储器(或扩展I/O )、MOVX A、d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 各类各行业年终个人工作总结
- 永州市2027届六上数学期末教学质量检测试题含解析
- 施工现场绿化工艺
- 2026年中国制砖机螺杆头市场调查研究报告
- 2026年修订版医疗器械经营监督管理办法培训试题及答案
- 航站楼项目消火栓系统安装施工方案
- 某工程管理夏季施工计划
- 机电管线除锈防腐施工方案及技术措施
- 建筑装饰企业安全操作规程
- 2026年危化品生产单位主要负责人证考试题库及答案
- 餐饮企业食品安全日管控、周排查、月调度制度(包含日管控周排查月调度记录)
- 射箭裁判知识培训内容课件
- DB65T 4353-2021 风力发电机组塔筒倾斜度测量方法
- 丙类仓库管理制度
- 机械设备安装施工部署
- 2025年工程监理企业发展策略及经营计划
- 纸护角生产工艺培训资料
- 延长石油社会招聘试题
- 装饰装修工程施工方案(完整版)
- 新浙教版 九年级科学上 第一章复习
- 2024年广西中考道德与法治试卷真题(含答案)
评论
0/150
提交评论