LEITURA RECOMENDADA
Arquitetura Arm
ARM é uma arquitetura para processadores RISC, de baixo custo e pouco consumo de energia,
desenvolvida pela Arm Holdings.
A arquitetura ARM foi iniciada em 1985 passando por novas atualizações com melhorias internas e
adição de novas instruções.
Observações
As informações de arquitetura contidas neste tutorial foram feitas para estudo básico da
linguagem assembly utilizada na arquitetura ARM v4.
Em relação às instruções estudadas, a v4 será utilizada pois contém também instruções presentes
nas versões precedentes v2 e v3, em sua maioria.
As versões v5, v6, v7, v8 e v9 podem ser adicionadas em futuras versões do tutorial,
bem como suas respectivas instruções Thumb.
Instruções ligadas a processadores secundários ou coprocessadores, não serão abordados no tutorial,
bem como instruções de ponto-flutuante e informações sobre as extensões A, E, T, D, M e S.
TÓPICOS
Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.
ARQUITETURA
Nesta parte do tutorial ARM vamos entender os conceitos básicos do processador em relação aos
seus registradores, pilha, tipos de dados, organização memória entres outros.
Nesta parte do tutorial vamos ter conhecimento básico sobre o ARM como características, uso
e processadores variantes/derivados, versões, ferramentas e outros.
Quero aprender »
A ARM v4 possui 16 registradores para armazenar informações. Nesta parte do tutorial vamos estar
quais são os registradores e seus usos gerais ou específicos.
Quero aprender »
Para a manipulação de dados em nossos programas, precisamos ter conhecido do tamanho dos dados
utilizados pela ARM bem como suas características.
Quero aprender »
Com 4GB de mémoria endereçável, precisamos ter conhecimento sobre como os dados são armazenados,
registradores mapeados em memória, mapeamento de memória e outros.
Quero aprender »
Entrada e saída é a forma como que um processador ARM troca informações com outros processados ou
periféricos que será discutido nesta parte.
Quero aprender »
Para realizarmos backups de registradores de dados e endereço, precisamos ter o conhecimento
básico sobre as características da pilha da ARM que podem ser vistas aqui.
Quero aprender »
As interruções são úteis para tratamento de eventos internos ou externos ao processador ARM.
Assim, precisamos entender as interrupções e os Hard Vectors.
Quero aprender »
As instruções na ARM são formadas por bytes sequênciais. Cada instrução possui seu formato de acordo
com os modos de endereçamento, registradores e condições utilizadas.
Quero aprender »
Para realizar movimentação de dados em memória, precisamos entender as modos de endereçamento
que a ARM define para o acesso aos nossos dados.
Quero aprender »
INSTRUÇÕES
Todas as instruções fornecidas pela arquitetura ARM serão estudadas neste parte do tutorial.
Abaixo, os grupos de instruções onde contém descrição, endereçamento e exemplos básicos de uso
de cada instrução.
Movimentação | Permuta | CPSR
Nesta parte, vamos ver as instruções de movimentação de dados entre registradores e também as
instruções de permuta e cópia de dados.
Quero aprender »
Como a ARM é uma arquitetura do tipo Load and Store, nesta parte, vamos aprender as instrução para
leitura e escrita de dados em memória.
Quero aprender »
A pilha é utilizada para backup de dados, passagem de parâmetros e outros.
Assim, precisamos aprender as instruções voltadas para uso da pilha na ARM.
Quero aprender »
A ARM possui um grupo de instruções para executar operações de soma e subtração. As instruções
ADD, SUB e outras serão estudadas nesta parte.
Quero aprender »
Além das instruções de adição e substração, a ARM fornece instruções para multiplicação. As instruções
MUL, MLA e outras podem ser vistas aqui.
Quero aprender »
As instruções bit-a-bit são responsáveis por "setar" , "resetar" e testar bits em registradores.
AND, ORR e outras serão estudadas nesta parte do tutorial.
Quero aprender »
Para tomada de decisão, a ARM utiliza as instruções de comparação usadas com conjunto com instruções
de controle de fluxo. CMP, CMN e outras serão estudadas aqui.
Quero aprender »
Para o controle de fluxo de execução a ARM fornece as instruções de desvio Branch e outras que
podem ser conferidas nesta parte do estudo.
Quero aprender »
Com as instruções de deslocamento podemos movimentar os bits à direita ou esquerda de um registrador.
Aqui vamos ver LSL, ROR, RRX e outras instruções.
Quero aprender »
ARM define alguns instruções para troca de informações com coprocessadores. Aqui vamos ver o básico
sobre as instruções CDP, LDC, MCR e outras.
Quero aprender »
Outras | Pseudo instruções
Todas as instruções que não se encaixam nos grupos de instruções acima serão agrupadas nesta seção.
Pseudo instruções como ADR, NOT e outras serão estudas.
Quero aprender »
PROGRAMAÇÃO
Nesta parte do tutorial vamos abordar a programação utilizando ARM. Apenas os conceitos básicos sobre o assunto
serão abordados.
Antes de iniciarmos o tutorial, é sempre necessário dicutirmos alguns detalhes sobre a tópicos, ferramentas
o outros itens.
Quero aprender »
Como em toda a linguagem de programação, vamos aprender a declara e atribuir valores a variáveis e constantes.
Quero aprender »
Nesta parte, vamos ver como podemos tomar decições na execução de nossos programas utilizando as flags
do CPSR.
Quero aprender »
Vamos ver como funcionam os famosos loops em baixo nível. As intruções aprendidas em Decisão também
serão utilizadas nesta parte.
Quero aprender »
Assim como em linguagens de alto nível, vamos ver como são criadas e invocadas funções utilizando o ARM.
Quero aprender »
Com as instruções aritméticas básicas, vamos aprender a somar, substrair, dividir e multiplicar
valores nos registradores.
Quero aprender »
Aqui vamos aprender como fazer backup de nossos registradores, recuperar e passar parâmetros
utilizando a pilha.
Quero aprender »
Nesta parte, vamos ver a como definir nosso VDI e ver o básico sobre o tratamento de
interrupções predefinidas e outros tipos.
Quero aprender »
Vamos aprender a como setar, resetar, inverter bits ou outros utilizando as instruções básicas
de bit-a-bit.
Quero aprender »
Manipulando Array e Struct
Nesta parte do tutorial, vamos ver o básiso sobre declaração de arrays e acesso aos seus elementos.
Quero aprender »
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.