是否有大会的代码约定(主要是PIC)?

时间:2009-06-03 20:13:23

标签: assembly comments conventions microcontroller

是否有大会的代码约定(主要是PIC)?

6 个答案:

答案 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任务(如定义内存或编写宏)的说明。