《单片微机原理与接口技术》V12第4章80C51的指令系统.ppt

《单片微机原理与接口技术》V12第4章80C51的指令系统.ppt

  1. 1、本文档共117页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
该指令是80C51指令集中唯一的一条16位数传送指令,其作用是将外部存储器某单元地址送到数据指针DPTR。这个存储单元可以是外部RAM也可以是外部ROM,也可以是扩展的片外接口地址。 如果地址传送到DPTR后用到MOVC指令,则所送的一定是ROM地址; 若用到MOVX指令,则所传送的一定是RAM地址或片外接口地址。 以上一般数据传送指令中,使用时请注意: ? 除direct外,源字节寻址与目的字节寻址方式是不相同的; ? ?Rn寄存器寻址与寄存器间接寻址间不相互传送; ? 只有以累加器A作为目的操作数的指令,才可能影响奇偶标志P。 特殊传送指令(13条) 1.以DPTR内容为基址 MOVC A,@A+DPTR; ;((A)+(DPTR))ROM → A 常数表存放约束小,称为远程查表指令,占用DPTR 。 2.以PC内容为基址 MOVC A,@A+PC ; ((A)+(PC)) ROM → A 常数表存放约束大,称为近程查表指令,不占用DPTR 。 在微型计算机的内存中,都需要设置一个对数据实行“后进先出”操作的区域,这个区域称为堆栈。 堆栈通常是存储器的一部分,为了保证堆栈区的数据能按后进先出的规则来操作,专门设置一个地址寄存器来管理,这个地址寄存器称为堆栈指针(SP)。 在89C51中,堆栈规定设在单片机的内部RAM中,同时在特殊功能寄存器中将81H设置为堆栈指针,即SP=81H,81H的内容指示了栈顶地址。51系列单片机系统复位时,(SP)=07H。 由于89C51片内RAM 区有限,所以栈顶越小,堆栈深度就越深。为便于通用4组工作寄存器组都能使用,一般在系统初始化时使用MOV SP,#30H将栈顶设置在30H位置处。 堆栈操作是通过指令来完成的。 将数据送入堆栈的过程称为压入(或压栈)操作; 而从堆栈中取出数据的过程称为弹出(或出栈)操作。 堆栈操作指令PUSH和POP 80C51的堆栈设在片内RAM低端的128个单元,向上生长型。 堆栈用于中断系统保护中断断点、 子程序调用时保护返回地址,或者用于保护子程序调用之前的某些重要数据(即保护现场), 还可以用于数据交换。 归纳: 在51系列单片机中,当数据存入堆栈时,堆栈指针将自动加1并将数据存入堆栈指针所指出的存储单元,当需要从堆栈中取出数据时,首先将堆栈指针所指出的存储单元中的数据读取,然后自动将堆栈指针减1。所以: 堆栈指针始终指向堆栈中最后存入数据的那个单元,称该单元为堆栈顶栈。 由于数据存入堆栈时堆栈指针自动加1(地址增大),所以称为向上生长型堆栈。 扩充: 在80X86系统中: 堆栈是向下生长型; 当数据存入或取出堆栈时,操作是以字(2字节)为基本单位的; 堆栈区域设置在片外RAM区。 三、长转移指令 LJMP addr16 ;addr16→PC LJMP指令执行后,程序无条件地转向16位目标地址(addr16)处执行,该指令可以使程序从当前地址转移到64KB程序存储器地址空间的任意地址。 问题1:PGTB与PG0-PGn的距离有什么限制? 问题2:AJMP改为LJMP有什么好处? 此时n ≤?,A需要做什么修改? LCALL addr16 ;长调用指令 ;(PC)+3→PC ;(SP)+1→SP,(PC7-0)→(SP)(子程序断点低8位压入堆栈) ;(SP)+1→SP,(PC15-8)→(SP)(子程序断点高8位压入堆栈) ;addr16→PC 被调用的子程序可以在64KB范围内的任何位置。 例:设 (SP)=60H,标号K11的值为8000H,标号AAS的值为8200H,在执行指令: K11:ACALL AAS后结果为(SP)=62H (61H)=02H,(62H)=80H,(PC)=8200H 本 章 小 结 (1)寻址方式就是告诉你如何去寻找操作数,指令由操作码和操作数构成,操作码指明该指令要完成什么样的操作,操作数指出该操作的对象。 (2)80C51指令系统有7种寻址方式,即寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、变址寻址、相对寻址、位寻址,共有111条指令。 (3)数据传送类指令使用最多,执行结果一般不影响标志位,算术运算类指令执行结果均将影响CY、AC、OV标志,逻辑运算指令执行结果一般不影响标志位,只在涉及累加器A时,才会对奇偶标志P产生影响。控制转移类指令是改变程序走向的指令,分有条件与无条件2类,有条件转移类指令大都采用相对转移,位操作指令系统有自己的累加器CY,只限于在位址区操作。 例: 设累加器A中存放待处理命令的编号(0-n;n≤127),转移表首地址为PGTB,则执行以下程序后,将根据A内命令编号值使程序转到相应的处理程序入口。

文档评论(0)

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

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

1亿VIP精品文档

相关文档