我试过寻找这个答案,但找不到明确的原因。为什么使用数据而不是xdata显着减少代码空间
我想优化一些8051 C代码以减少代码空间。我做了如下改变..
xdata unsigned char a, b;
到
data unsigned char a, b;
...看到我的代码大小由39Bytes(感觉像圣诞节)减少。
来源:程序大小:数据= 9.0 ...码= 10509
到:程序大小:数据= 11.0 ...码= 10468
问:为什么在代码空间减少了这么多对于这样的小改变?
我知道使用数据可以通过不必使用DPTR访问内存来保存指令。但是39Bytes比预期的要多。 – user968722
这取决于您使用该变量的程度。它重载值越大,代码越大 –
这看起来很像汇编器,而不是C ... – RedX