LAOXU 发表于 2023-2-1 06:34:26

网上普遍反应, IAR C51 编译的代码质量 要优于 Keil C51.

让我想起了很久前看到的一篇贴子, 作者用一个也算比效规范的写法, 用宏定义了一个 常数指针作为 XDATA的地址.

IAR C51编译后, 直接用这常数, 对 DPTR赋值.

Keil C51编译后, 先用这常数对内部变量赋值, 再转换成指针, 最后才对 DPTR赋值.(其常数值始终未变), 代码如同上面的例子, 一大堆.

LAOXU 发表于 2023-2-1 06:53:32

宏定义经人工优化后, 在 C251编译环境下, 效果好多了, 代码长度接近 汇编级, 我再看看, 是否还能再优化, 期望代码长度达到 汇编级,

这是C251正常编译结果:


LAOXU 发表于 2023-2-1 07:32:06

宏定义又做了进一步优化, 在 C251编译环境下, 已达到极限了, 红框内的代码, 因 C251 编译器问题, 无法去除(优化) .

这是C251最终编译结果:



LAOXU 发表于 2023-2-1 07:37:08

这是测试代码, 能自动识别 C51编译器 和C251编译器 , 编译出最优最短的执行代码.




ourstc 发表于 2023-2-1 11:29:07

必须给楼主点赞

chhome 发表于 2023-2-2 11:24:10

不错不错,这个要支持

期待官方库更加完善

xhbwork 发表于 2023-2-4 15:31:39

LAOXU 发表于 2023-2-1 06:34
网上普遍反应, IAR C51 编译的代码质量 要优于 Keil C51.

让我想起了很久前看到的一篇贴子, 作者用一个也 ...

IAR51好像边缘化了,上次应用的时候好像十年前了,后来用KEIL习惯了就忘记了还有IAR:lol

神农鼎 发表于 2023-2-4 15:36:51

STC 1T 8051:
Keil/这个最实用;
IAR C++ for 8051/【C99, C++, 都是精华】;
SDCC/玩玩可以, 企业就不要玩这东西了

STC32G12K128 : Keil C251/绝对实用

神农鼎 发表于 2023-2-4 15:38:13



深圳国芯人工智能有限公司-其它 (stcai.com)

LAOXU 发表于 2023-2-4 20:24:15


推荐最新编写的 STC32G_MDU32 标准数学函数库,

函数库, 含以下库文件.

1. 浮点加减乘除法

2. 32位整数乘除法(快速)

2. 64位长整数加减乘除法

3. ABS求绝对值.




页: 1 [2] 3 4 5
查看完整版本: STC32库函数20230318版更新