/**********************************
转自
http://www.21icbbs.com汇编的思维写出简洁的c程序
上学的时候学过单片机,后来几乎全还给了学校。前段时间由于工作需要重新拾起来,用汇编写了个程序,但由于维护起来太麻烦,决定用c重写一遍。在重写的过程中有一点点心得,希望与其他c51的初学者共享!
如果要写个延时程序,是用
{
for(i=0;i<100;i++);
}
还是用
{
for(i=100;i>0;i--);
}
呢?似乎没什么区别,但在汇编里面
用加一的思想,程序必然这么写,
mov r0,#00h ;2字节
loop:
inc r0 ;1字节
cjen r0,#64h,loop ;3字节
如果用减一的思想,程序可以这么写
mov r0,#64h ;2字节
loopl:
djnz r0,loop ;2字节
其实这也是keil c对c处理后的汇编情况。
由此可见,c的语法稍微变一点,就可以节约2个byte,定时可以更精确。
程序更简洁!
*********************/
图片是我用keil 51编译后的结果,for(i=0;i<100;i++);编译后的代码比作者的要多,不知道何故!!!