汇编程序格式规范
<br />在单片机领域,一直有一个怪现象,就是:每个程序员写的程序,都只有自己看得懂。原因何在?盖因每个程序员写程序时,都按自己的习惯来写,大家没有统一的规范。如此以来,造成诸多弊端:<br />1、 可读性极差。读懂别人的一个程序,比自己写一个程序的时间还长。<br />2、 可维护性极差。程序越写越长,越改越烂,像懒婆娘的裹脚布,又长又臭又粘。<br />3、 可移植性极差。今天你写程序用的子程序,明天我写程序时,这些子程序又得重写一遍。众多的程序员在程序的苦海中重复着低级劳动¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬……<br />4、 开发周期长。客户怨声载道,老板的MONEY不禁使唤……<br />……<br />在此,特发出倡议:让我们共同来制定一个程序编写规范,大家都用这种规范来写程序,并逐步推动其成为一种行业标准。<br />(以上摘自于匠人手记,下面是作者自编的汇编程序格式规范)<br /><br />1、程序的开头:<br />在开头部分,我们应该说明以下几个关键点:<br />a、程序编写人 b、程序编写时间 c、程序实现的功能<br /><br />;//////////////////////////////////////////////////////<br />;程序编写人: 王筝 QQ:408864998<br />;程序编写时间: 2008年12月11日星期四<br />;程序实现的功能: 本程序实现P2口的流水灯,低电平点亮<br />;//////////////////////////////////////////////////////<br /><br />2、子程序的注释<br />严格来说,所有的程序,每条指令,都必须写上注释。但在实际中,有的同学想节省时间,但也不能代表不需要写注释,可以只对子程序进行注释。子程序的注释,主要包括下面几个关键点:<br />a、子程序的名称 b、子程序实现的功能 c、输入 d、输出<br /><br />;///////////////显示子程序///////////////////<br />;输入:"A"<br />;输出: "P2口"<br />;实现的功能:把A的数输出到P2口显示<br />display: mov shuchu,a ;p2口输出要显示的灯<br /> ret<br /><br />3、主程序<br />主程序是方便大家把程序模块化,从主程序反应的信息,一定是整个程序的整体,因此主程序一定是调用子程序或者判断,主程序指令最好不要超过20条。<br /><br />;/////////主程序////////////////////////////<br />start: mov a,#01h ;初始化<br />main: call display ;显示 <br /> call delay ;延时<br /> call zuoyi ;左移<br /> ljmp main ;循环<br /><br />4、初始化的定义<br />在单片机的主程序前,必须要对所有的I/O口,以及用到的资源进行定义,定义的名称应该通俗易懂,方便大家进行以后阅读程序,增强程序的可读性。并且对定义的名称,进行注释。<br /><br />;/////////开始自定义及初始化////////////////<br />shuchu equ p2 ;定义P2口为输出口<br />pianxuan equ p1 ;P1为片选口<br />cishu equ 10 ;循环次数<br />shuzhi equ 100 ;显示的数值<br />顶
不错,汇编这样规范的
‘每个程序员写的程序,都只有自己看得懂。’<br />这个是不是人家在保护自己的劳动成果啊恩,
俺以前接受的汇编,CAO,连PORTA,PORTB都直接用内存地址 xxH来写,更别说内存单元命名了, 整死个人...这是因为思维习惯不很难看出来的
呵呵 顶顶
汇编不大用了 用C用规范也是必须的。呵呵,我写程序大致是这样规范
不过,程序编写人,程序时间,程序功能都没有,都在我的笔记本(不是电脑)里;<br /><br />精确到每一句的注释基本没有,除非那个东西对我来说很新,第一次想出来,而且觉得很妙;<br /><br />子程序的注释都有,但是E文的;<br /><br />还有就是内存和SFR,SFR一般是开发环境就定义好名字了,我就用了,没有定义的地方就直接用地址,当然很多地址按照C语言的说法是全局的,它是做什么用的,只在我的笔记本(不是电脑)里有。这不是从c规范抄的吗
汇编直接不提倡用.老板为了省钱用不支持c的芯片,对不起,这个问题老板自己承担.俺觉得汇编挺好
汇编挺好本人以卖菜的名字声明
这个完全是我的原创!楼主说的很好
搭好了框架以后更改也方便,可靠性也会提高。我以前的师傅,一个主循环几千行,子程序调用很少,一路下来没一句注释,现在想想都恐怖顶卖菜王!!!
非常好的规范,可以看出完全是搂主原创。<br /><br />添加一个小小的建议:使用明确而有意义的命名。一个好的程序不用注释也应该能看得懂。既然花了大量篇幅在注释上,为什么不再多打几个字在变量名和程序名上呢?例如:delay 不如 delay_100ms or delayInMillisecond 有意义.<br /><br />回复楼上
非常感谢你的建议!感谢写好流程图才是最根本的方法。
写汇编要注意资源的占用情况,子程序最好作出说明
上层调用子程序时就会将被子程序(弄脏)的寄存器入栈保护的.<br />51单片机汇编时尤其是DPTR要当心.想提高代码重用质量有两个方法
1是用C语言编程.<br />2是分层,将底层与硬件相关的驱动层独立出来,中间层和应用层做成ANSI C兼容的,应该就能跨平台使用了.都用C了,格式参考“华为编程规范”
都用C了,格式参考“华为编程规范”DINGQI
顶起来
顶一下呵呵 建议是好的是规范 也难统一呀
我的汇编也是规范的 自己规定的规范而已<br />呵呵
页:
[1]
2