从技术上讲. 1楼的办法用个指针就可以了.
比如:
unsigned char data *cp = (unsigned char data *)128;
do *--cp =0: while (cp);
不过有两个问题: cp 会编译到 R0, 而这个 R0 也在 128 字节内, 也会被修改. 上面的代码如果寄存器组不是0, 那么低与寄存器组的地址是清除不了的. 这里的指针用了累减方式, 而如果用指针累加方式, 情况会复杂一点.
另外, C 编译器会安排很多变量在低 128 字节的空间. 除了初始化代码, 应用程序不宜随便去清零这部分内存! 可能会导致程序崩溃.
|