Keil C51编译/链接/优化
一、C51编译库及代码优化技术
1.1 代码优化
C51可将即使有经验的程序员编制的代码进行优化,总共有9个优化级,C51的所有优化方法如下:
0级(Constan folding)的优化包括:
6级(Loop rotation)的优化包括:
7级(Extended Index Access optimizing)的优化包括:
9级(Common Block Subroutines)的优化包括:
二、C51与ASM混合编程技术
2.1 混合编程意义
通常用C51来编写主程序。然而,在一些时序要求严格的采用汇编程序设计具有更高的效率,因此要求在C程序中调用一些用汇编语言编写的子程序。
方法一、直接在函数体内的每个汇编语句前加?“asm”预编译指。
方法二、把asm作为关键字后续汇编用大括号括起来
方法三、在C模块内通过语句“#pragma”嵌入汇编代码
三、C51中常见符号的命名规则
四、C51函数的参数传递规则
五、 Data Overlay
大多数C编译器函数参数和局部变量存储在硬件栈的一部分称为堆栈帧。这种方式好处是速度快, 对于栈空间大的架构来说很实用。
但是,8051 栈空间只有256byte, 这种方式显然不合适,太浪费8051的栈空间。
因此,C51的 C编译器使用LX51链接器将函数参数和局部变量存储在固定的内存位置(fix memory)使用定义明确的名称(以便函数参数易于传递和访问)。