是否有大会的代码约定(主要是PIC)?
答案 0 :(得分:7)
我找到了您可能感兴趣的Assembly Language Style Guide(PDF)。
答案 1 :(得分:6)
在编写程序集时,它非常有帮助,而且根本不是每行注释
答案 2 :(得分:2)
这取决于您是在汇编中编程还是使用c编译器为您创建程序集,如果性能很重要,请不要使用c编译器,自己编写程序集。
但一般来说,约定是对每一行进行注释,使用带有意义指针名称的简单子程序。有些事你会对这个块发表评论,即
start: movlw 0x24 // \
movf count // put 24 into count
MyCount: decfsz count //decrement count and exit if done
goto myCount //do the loop
goto exit //count is done exit
这是典型的编码,地址指针的第一列是命令的下一个列,关联的vars通常在实际程序之前的头部分中定义vars,但这对于您正在使用的汇编程序是特定的。有些人没有给你变量指针选项,你必须使用直接的内存位置。如果你看一下从反汇编程序中回来的注释代码,它看起来就像。
0020 movlw 0x24
0021 movf 0x25 // 0x25 = memory address of count
0022 decfsz 0x25
0023 goto 0x0022 // loop back to 0x22 until count = 0
0024 goto 0x01FF
然后你注释掉它确保将代码分组使用'nop'来将代码偏移到良好的整数,例如开始地址为20,留下2到20之间的地址清除中断等。根据芯片,我为12f675写了很多代码,这就是我经常使用的模型。
还将代码保存在简单明确的子程序中,并且地址应该是很好的整数,在初始子程序之间留下10个左右的块,你可以随时返回并压缩代码。并始终注释您的代码,你不能评论它。
我也常常将我的初始路由尽可能接近内存的末尾,为实际程序留下最大空间。
希望有所帮助。
答案 3 :(得分:0)
我认为没有任何正式的东西,但在他们的网站上阅读编码样本可以让你领略通常的习语。请注意,许多不同的爱好者都有很多“贡献”,他们可能不会那么好。
还检查其他项目,大多数都会有丑陋的代码;但你会找到一两块宝石。
我从未在PIC上做过程序,但喜欢阅读代码。我依旧记得一个“实时操作系统”,它具有非常好的和干净的执行流程。不记得编码风格的一致性,但我会从那里开始。
最好阅读大部分内容,当它像散文一样容易,那么你会找到你的风格
答案 4 :(得分:0)
我和Jason S在一起 - 尽可能使用C编译器,即使你最终使用“__asm”关键字在你的“.c”文件中嵌入几行汇编语言。
如果必须在PIC的汇编程序中编写整个程序,则推荐的函数调用约定为 PIClist: PIC Paging and PCLATH
答案 5 :(得分:0)
这实际上取决于您使用的PIC型号。例如,PIC16和PIC18有很多可以在网上轻松找到的汇编示例。
然而,像PIC24和PIC32这样的模型更倾向于C。它们是C中的很多PIC示例,可以在网站上找到适合您特定PIC模型的示例。这些PIC模型仍然可以在汇编中进行编程,但它们的网页示例很少。最好的资源是在MPLAB的“帮助”下,检查PIC模型使用的汇编程序的“帮助内容”。这将向您展示一些示例以及如何在PIC组件中编程并完成简单的PIC任务(如定义内存或编写宏)的说明。