keil 编译时,为何有时候会多出突然代码很大,而在lst文件当中没有出现很大的代码?
比如: void main(void) { char i; char *ptr="1"; *(char **)i=ptr; } 这一段代码编译,0级优化,代码说是157Byte。 而这一段代码: void main(void) { char i; char *ptr="1"; (char *)i=ptr; } 0级优化,是42Byte。
但是对比了生成的汇编代码,差别了仅仅10个直接左右,为什么显示的代码量的变化和实际看到的汇编代码量的变化会有这么大的区别?
另外,请问一下,用keil的软调试时,点击调试就跳入到了main函数里面,但是这个时候,好像前面好像有程序运行过了,因为sp意见被置为0x30了,我想完全的从0x0000地址开始运行的话,该如何做? |