User: alciro    User
 Original    Translate to:  Deutsch  English  Français  中文  
 

Microcontroladores 8051

5.4. 子程序或子程序

一个子程序或子程序在一节单独的程序或功能部件的主要程序,可以被调用以执行特定的。子程序可能需要的主要程序或其他如需要多次子程序。当你调用一个子程序执行现行程序停止,程序计数器PC(程序计数器)的子程序装入内存的位置,运行到RET指令(子程序结束),其中生产程序返回到主恢复运行。如C高级语言,基本子程序的名义下被称为功能或程序。

在子程序必须考虑下列因素:

  • 履行职能具体操作上没有自己。
  • 总是挂了一个重要方案或其他子程序。
  • 可调用的代码需要多次重复使用 ,因为它减少了程序代码的有效果
  • 允许区块划分方案执行的结构功能。提供更大的可视性和理解。

由于良好的意见,建议尽可能分工子程序或分项计划,并减少在主要方案的句子的内容。首先,子程序是必要的程序的一部分时,被执行多次。我们将会使程序更容易,它需要在ROM空间更少。

如果一个子程序是由几条指令,它可能最好还是不要创建它,因为调用和返回机制可能使慢执行指令放在主程序直接。

子程序或子程序中sensamblador

CALL指令

调用子程序。程序计数器被替换的地址继续执行。个人电脑(下当前的位置)的内容存储在堆栈。

迪尔LCALL

1 º
(PC)=(PC)+3 读取指令和程序计数器PC指向下
2 º
(SP)=(SP)+1 堆栈保存到程序计数器PC指向下一条指令
3 º
((SP))=(PC 7-0)
4 º
(SP)=(SP)+1
5 º
((SP))=(PC 15-8)
6 º
(PC)= 15-0 addreses 程序控制转移到指令的地址是在字节2和3中指定的实际CALL指令

RET指令

子程序返回。从堆栈检索程序计数器PC和程序继续在以下的子程序调用CALL指令执行。

RET

1 º
(PC 15-8)=((SP)) 它检索程序计数器PC的内存堆栈
2 º
(SP)=(SP)-1
3 º
(PC 7-0)=((SP)) 程序继续执行的子程序调用时的下一个位置
4 º
(SP)=(SP)-1

嵌套的子程序

嵌套子程序
Loading
copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |