Há um Convenções de Código para Assembly (principalmente PIC)? [fechadas]
-
09-09-2019 - |
Pergunta
Há um Convenções de Código para Assembly (principalmente PIC)?
Solução
Eu era capaz de encontrar href="http://www.sourceformat.com/pdf/asm-coding-standard-brown.pdf" rel="nofollow Guia Assembly Language Style (PDF) que você talvez possa estar interessado.
Outras dicas
Ao escrever a montagem, é muito útil e não em tudo ao mar para Comentário cada linha
Isso depende se sua programação em assembly ou usando um compilador c para criar o assembly para você, Se o desempenho é importante não usar um compilador c, escrever a montagem mesmo.
mas, em geral, as convenções são para comentar cada linha, use sub-rotinas simples com nomes ponteiro significativas. existem algumas coisas que você gostaria de comentar sobre o bloco, ou seja
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
Este é o típico de codificação, a primeira coluna para os ponteiros de endereço a próxima para o comando e associados vars você costuma definir o vars na seção de cabeçalho antes de o programa atual, mas que é especial para a montador você está usando. alguns não dar-lhe a opção ponteiro variável e você tem que usar um local de memória direta. se você olhar para o código comentado voltando para fora do desmontador que seria parecido.
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
então você comentá-lo certifique-se de grupo o uso de código 'nop' s para compensar código para bons números redondos como começar a ter um endereço de 20 endereços deixando entre 2 e 20 claro para interrupções e afins. dependendo do chip de eu escrever um monte de código para os 12F675 de modo que é o modelo que eu costumo usar.
também manter o código em sub-rotinas simples e claras e não há endereços devem ser agradáveis ??números redondos deixando blocos de 10 ou mais de nop entre as sub-rotinas iniciais você sempre pode voltar e comprimir seu código mais tarde. e sempre comentar seu código você não pode comentar o suficiente.
Também I usualy colocar meu inicialização routeen tão perto do fim da memória como posible deixando o espaço máximo para que o programa real.
Espero que ajude alguns.
eu não acho que haja nada formal, mas a leitura das amostras de codificação em seu site dá-lhe um gosto dos idiomas habituais. apenas estar ciente de que existem muitas 'contribuições' de muitos amadores diferentes, e eles podem não ser tão bom.
também verificar outros projetos, a maioria vai ter código feio; mas você vai encontrar uma jóia ou dois.
i nunca fez programa no PIC, mas gostava de ler o código. Lembro-me vagamente de um "sistema operacional de tempo real" com um fluxo de execução muito bom e limpo. Não me lembro como consistente era o estilo de codificação, mas eu começar por aí.
é melhor para ler a maioria deles e quando é tão fácil como prosa, então você vai encontrar o seu estilo
Eu estou com Jason S - usar um compilador C, se possível, mesmo se você acabar incorporando algumas linhas de linguagem assembly em seu arquivo ".c" usando a palavra-chave '__asm'
.Se você deve escrever programas inteiros em assembler para o PIC, a convenção chamada de função recomendado é de pelo PIClist:. PIC paginação e PCLATH
Seria realmente dependem do modelo de PIC você está usando. Por exemplo, PIC16s e PIC18s tem um monte de exemplos de montagem que podem ser facilmente encontrados na web.
No entanto modelos como PIC24 e PIC32 são muito mais voltadas para C. Os seus são um monte de exemplos PIC em C que podem ser encontrados no site para o seu modelo PIC específico. Estes modelos PIC ainda pode ser programado na Assembleia, mas os seus são muito poucos exemplos web sobre como. O melhor recurso para que está em MPLAB em "Ajuda", marque a opção "Conteúdo da Ajuda" do que quer que Assembler seus usos modelo PIC. Isto irá mostrar-lhe alguns exemplos, bem como instruções sobre como programa no PIC montagem e realizar tarefas PIC simples como a definição de memória ou escrever macros.