欢迎来到天天文库
浏览记录
ID:27387453
大小:352.01 KB
页数:53页
时间:2018-12-01
《《的指令系统》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章MCS-51的指令系统介绍MCS-51汇编语言的指令系统。3.1指令系统概述MCS-51的基本指令共111条,按指令所占的字节来分:(1)单字节指令49条;(2)双字节指令45条;(3)三字节指令17条。按指令的执行时间来分:(1)1个机器周期(12个时钟振荡周期)指令64条(2)2个机器周期(24个时钟振荡周期)指令45条(3)只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期)。12MHz晶振:机器周期为1s。3.2指令格式两部分组成,即操作码和操作数。操作码用来规定指令进行什么操作操作数则是指令操作的对象有单
2、字节指令、双字节指令、三字节不同长度的指令,格式不同:(1)单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。(2)双字节指令:一个字节为操作码,另一个字节是操作数。(3)三字节指令:操作码占一个字节,操作数占二个字节。其中操作数既可能是数据,也可能是地址。3.3指令系统的寻址方式寻址方式就是在指令中说明操作数所在地址的方法。共7种寻址方式。1.寄存器寻址方式操作数在寄存器中MOVA,Rn;(Rn)→A,n=0~7表示把寄存器Rn的内容传送给累加器A寻址范围包括:(1)4组通用工作寄存区共32个工作寄存器。(2)部分特殊功能
3、寄存器,例如A、B以及数据指针寄存器DPTR等。2.直接寻址方式操作数直接以单元地址的形式给出:MOVA,40H寻址范围:(1)内部RAM的128个单元(2)特殊功能寄存器。除了以单元地址的形式外,还可用寄存器符号的形式给出。例如:MOVA,80H与MOVA,P0是等价的。3.寄存器间接寻址方式寄存器中存放的是操作数的地址在寄存器的名称前面加前缀标志“@”访问内部RAM或外部数据存储器的低256个字节时,只能采用R0或R1作为间址寄存器。例如:MOVA,@Ri;i=0或1其中Ri中的内容为40H,把内部RAM40H单元内容送A。寻址范
4、围:(1)访问内部RAM低128个单元,其通用形式为@Ri(2)对片外数据存储器的64K字节的间接寻址,例如:MOVXA,@DPTR(3)片外数据存储器的低256字节例如:MOVXA,@Ri(4)堆栈区堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针(SP)作间址寄存器4.立即寻址方式操作数在指令中直接给出,需在操作数前面加前缀“#”。例如:MOVA,#40H5.基址寄存器加变址寄存器间址寻址方式本寻址方式是以DPTR或PC作基址寄存器,以累加器A作为变址寄存器。例如:指令MOVCA,@A+DPTR其中A的原有内容为05H,D
5、PTR的内容为0400H,该指令执行的结果是把程序存储器0405H单元的内容传送给A。说明:(1)本寻址方式是专门针对程序存储器的寻址方式,寻址范围可达到64KB。(2)本寻址方式的指令只有3条:MOVCA,@A+DPTRMOVCA,@A+PCJMP@A+DPTR6.位寻址方式MCS-51有位处理功能,可以对数据位进行操作,例如:MOVC,40H是把位40H的值送到进位位C。寻址范围包括:(1)内部RAM中的位寻址区。位有两种表示方法,例如,40H;另一种是单元地址加上位,例如,(28H).0,指的是28H单元中的最低位。它们是等价的
6、。(2)特殊功能寄存器中的可寻址位可寻址位在指令中有如下4种的表示方法:a.直接使用位地址。例如PSW.5的位地址为0D5H。b.位名称的表示方法。例如:PSW.5是F0标志位,可使用F0表示该位。c.单元地址加位数的表示方法。例如:(0D0H).5。d.特殊功能寄存器符号加位数的表示方法。例如:PSW.5。7.相对寻址方式在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址:目的地址=转移指令所在的地址+转移指令的字节数+rel偏移量rel是一带符号的8位二进制数补码数。范
7、围是:–128~+127向地址增加方向最大可转移(127+转移指令字节)个单元地址,向地址减少方向最大可转移(128-转移指令字节)个单元地址。7种寻址方式及寻址空间,见表3-1(P43)。3.4MCS-51指令系统分类介绍111条指令,按功能分类,可分为下面5大类:(1)数据传送类(28条)(2)算术操作类(24条(3)逻辑运算类(25条)(4)控制转移类(17条)(5)位操作类(17条)指令中符号的意义:Rn当前寄存器区的8个工作寄存器R0~R7(n=0~7)。Ri当前选中的寄存器区中可作间接寻址寄存器的2个寄存器R0、R1(i=
8、0,1)。Direct直接地址,即8位的内部数据存储器单元或特殊功能寄存器的地址。#data包含在指令中的8位立即数。#data16包含在指令中的16位立即数。rel相对转移指令中的偏移量,为8位的带符号补码数DPTR数
此文档下载收益归作者所有