位置:51电子网 » 技术资料 » 显示光电

调用及返回指令

发布时间:2016/7/11 22:18:27 访问次数:1064

   在程序设计时,对经常使用的具有一定功能的程序段可以设计为子程序,在需要使用时可以调用它,ADM705ARZ这样可以使程序的结构更加清楚,同时减少重复指令所占的内存空间,实现程序的模块化设计。

   在调用子程序时,80C51系统有专门的子程序调用指令。子程序调用时,必须要中断原有的指令执行顺序,转移到子程序的入口地址去执行子程序。在子程序执行完毕后,又要返回到原有程序中断的位置,继续往下执行。所以这个断点位置(地址)要保存起来,一般都是放在堆栈中保存。我们把返回到原有程序继续执行的位置称为程序断点,也就是子程序调用指令的下一条指令的地址。

   调用指令

   MCs-51中有两条子程序调用指令:

   ACALL addr11   ;(PC)+2→PC

   KsD+1→sRlPC,~0)→fsPl(断点低8位压入堆栈)

   fsD+1→sECC15~:)→lSP,(断点高8位压入堆栈)

   addr11→PClO~o

   LCALL addr16   ;(PC)+3→PC

   KsP)+1→s:lPC7~o)→lsPJ(断点低8位压入堆栈)

   fsD+1→s只rPc15~:)→fsD(断点高8位压入堆栈)

   addr16→PC

   ACALL ad&11是短调用指令,同样addr11是被调用子程序首地址的低11位,编程时常用标号来表示,同AJMP指令一样,被调用的子程序的起始地址必须与ACALL下面指令的第一个字节在同一个9KB区域的页面内。

   LCALL addr16是长调用指令,被调用的子程序可以在“KB范围内的任何位置。

   【例4.34】设(sD=ωH,标号K11的值为8000H,标号AAs的值为8200H,在执行指令:Kl1: ACALL AAs

   后结果为rsP)=62H,“1H)=02H,∞2H)=80H,eC)=8⒛oH。



   在程序设计时,对经常使用的具有一定功能的程序段可以设计为子程序,在需要使用时可以调用它,ADM705ARZ这样可以使程序的结构更加清楚,同时减少重复指令所占的内存空间,实现程序的模块化设计。

   在调用子程序时,80C51系统有专门的子程序调用指令。子程序调用时,必须要中断原有的指令执行顺序,转移到子程序的入口地址去执行子程序。在子程序执行完毕后,又要返回到原有程序中断的位置,继续往下执行。所以这个断点位置(地址)要保存起来,一般都是放在堆栈中保存。我们把返回到原有程序继续执行的位置称为程序断点,也就是子程序调用指令的下一条指令的地址。

   调用指令

   MCs-51中有两条子程序调用指令:

   ACALL addr11   ;(PC)+2→PC

   KsD+1→sRlPC,~0)→fsPl(断点低8位压入堆栈)

   fsD+1→sECC15~:)→lSP,(断点高8位压入堆栈)

   addr11→PClO~o

   LCALL addr16   ;(PC)+3→PC

   KsP)+1→s:lPC7~o)→lsPJ(断点低8位压入堆栈)

   fsD+1→s只rPc15~:)→fsD(断点高8位压入堆栈)

   addr16→PC

   ACALL ad&11是短调用指令,同样addr11是被调用子程序首地址的低11位,编程时常用标号来表示,同AJMP指令一样,被调用的子程序的起始地址必须与ACALL下面指令的第一个字节在同一个9KB区域的页面内。

   LCALL addr16是长调用指令,被调用的子程序可以在“KB范围内的任何位置。

   【例4.34】设(sD=ωH,标号K11的值为8000H,标号AAs的值为8200H,在执行指令:Kl1: ACALL AAs

   后结果为rsP)=62H,“1H)=02H,∞2H)=80H,eC)=8⒛oH。



上一篇:条件转移指令

上一篇:返回指令

相关技术资料
8-19三极管
7-11调用及返回指令

热门点击

 

推荐技术资料

按钮与灯的互动实例
    现在赶快去看看这个目录卞有什么。FGA15N120AN... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!