PIC 单片机 中的堆栈是硬件实现的,其深度已随芯片而固定,无法实现需要大量堆栈操作的递归算法

PICC 基本上符合 ANSI 标准,除了一点:它不支持函数的递归调用。其主要原因是因

 

为 PIC 单片机特殊的堆栈结构。在前面介绍 PIC 单片机架构时已经详细说明了 PIC 单片机

 

中的堆栈是硬件实现的,其深度已随芯片而固定,无法实现需要大量堆栈操作的递归算法;

 

另外在 PIC 单片机中实现软件堆栈的效率也不是很高,为此,PICC 编译器采用一种叫做“静

 

态覆盖”的技术以实现对    C  语言函数中的局部变量分配固定的地址空间。经这样处理后产

 

生出的机器代码效率很高,按笔者实际使用的体会,当代码量超过 4K 字后,C 语言编译出

 

的代码长度和全部用汇编代码实现时的差别已经不是很大(<10%),当然前提是在整个  C

 

代码编写过程中须时时处处注意所编写语句的效率,而如果没有对 PIC 单片机的内核结构、

 

各功能模块及其汇编指令深入了解,要做到这点是很难的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值