51片子比较简单,你打开 \Keil\C51\LIB,找到startxxx.A51,这就是启动代码,它处理MAIN之前的操作,最后跳到MAIN去;
51一般的清零是这一段
IF IDATALEN <> 0
MOV R0,#IDATALEN - 1
CLR A
IDATALOOP: MOV @R0,A
DJNZ R0,IDATALOOP
用R0从RAM最大值到0,全部清零
ARM中也是有启动文件的,不同的芯片和编译器都有自己的方法和设计;
我以前用过的一个51的C编译器会在程序尾加入一个while(1),总之,不要把一些东西交给编译工具,自己明确才好;
在C语言中,所谓的"事实胜于雄辩",不是写一段代码,输入和输出达到要求就行的,不同的C 工具可能结果并不相同;
一般常出问题的就是"结合","优先级"等,不要怕麻烦,自己加上括号,自己给定初始值,比什么都好; |