Escrevendo o código do ARM Assembly

20

Depois de obter meu Raspberry Pi, decidi que queria aprender a escrever código de montagem ARM. Minha pergunta é: o que eu preciso para começar? Presumo que já exista um compilador instalado, mas não sei o que é (gcc talvez?). Qualquer ajuda é apreciada!

ohblahitsme
fonte
Aqui está outro livro (gratuito) sobre a montagem do BRAÇO: yurichev.com/writings/RE_for_beginners-en.pdf
Dennis Yurichev 5/13

Respostas:

19

Depende de quanto o montador você deseja escrever. Se você deseja escrever apenas pequenos trechos incorporados no código C, gccé realmente o que você está procurando. Exemplos de como usar a asmdiretiva em C, consulte a referência inline asm em: ARM GCC Inline Assembler Cookbook

Se, por outro lado, você quiser escrever mais do que apenas pequenos trechos, será melhor usar um montador completo. Este estará disponível como qualquer as, gasou ambas (alias).

E, finalmente, você precisará aprender um pouco sobre o conjunto de instruções do ARM. Há uma referência útil no: Manual de referência técnica do ARM1176JZF-S .

NB Lembre-se de que o RPi suporta apenas instruções armv6 - portanto, não tente usar nada do armv7

Boa sorte!! :)

Maria Zverina
fonte
4

Comecei minha aventura com o código de montagem do ARM há pouco tempo e aqui estão meus recursos:

  • A Universidade de Cambridge publicou um conjunto muito decente de tutoriais aqui: Baking Pi . Ele inclui um modelo para seu próprio sistema operacional, exemplos completos de códigos para cada tutorial e todas as instruções sobre como criar e executar seu código.
  • Além disso, este livro robusto deve cobrir todas as bases: Guia do desenvolvedor do sistema ARM .
Piotr Justyna
fonte
3

Embora eu esteja bastante confortável com a interface da linha de comando, não pude resistir à conveniência da GUI. Há um tempo, descobri que podia usar o CodeBlocks IDE para desenvolver programas de linguagem assembly ARM em um Raspberry Pi. Então, escrevi um tutorial e o anexei ao tutorial de programação de montagem do Raspberry Pi que escrevi para o site do livro Mazidi ARM Assembly:

http://www.microdigitaled.com/ARM/ARM_ASM_books.htm

No site, clique no link "ARM Assembly Programming Using Raspberry Pi GUI".

Espero que isto ajude.

Schen
fonte
1

O GCC é instalado por padrão. Se você é novo no Raspberry Pi, recomendo que você procure uma linguagem de programação mais fácil do que o assembly ARM. Como não existem IDEs para montagem, você precisará usar um editor de texto e montá-lo através do terminal. Eu recomendo o Gedit pela facilidade de uso. Entretanto, para obter o destaque da sintaxe para montagem, tive que ir ao github, especificamente na página de shinyquagsire23. É muito linda. Quanto à ajuda O melhor recurso que encontrei é "Raspberry Pi Assembly Language: Raspbian Beginners", de Bruce Smith. Você pode encontrá-lo na Amazon. Ele explica a montagem de uma das maneiras mais claras e simples que encontrei.

Dark Ronin
fonte
1

Aprenda com exemplos executáveis

Estou trabalhando em: https://github.com/cirosantilli/arm-assembly-cheat

Recursos:

  • o mesmo assembly exato pode ser executado em um host Linux com o modo de usuário QEMU, para que você possa experimentar coisas mais rapidamente em seu host antes de se tornar nativo no Pi
  • abrange o ARMv7 e o ARMv8
  • boa configuração GDB pronta para uso, tanto no host quanto no nativo
  • possui afirmações que mostram o número da linha de montagem em que as coisas falharam
  • usa a biblioteca padrão C para IO, o que o torna OS portátil em teoria e permite reutilizar facilmente itens como printfememcpy
Ciro Santilli adicionou uma nova foto
fonte