Arquitetura AVR Risc
Arquitetura interna
Baseado em uma arquitetura RISC, o ATmega8 é um micro controlador de 8 bits que pertence à família AVR da ATMEL. Possui cerca de 130 instruções e foi desenvolvido para que houvesse uma maior eficiência na execução de códigos implementados em C. Seus registradores são diretamente ligados a ULA, garantindo a execução de uma instrução por ciclo.
Seu barramento é composto de 8 vias, de modo a otimizar os 8 bits da arquitetura, alcançando em torno de 1 MIPS por MHz. A memória é do tipo flash e permite o endereçamento de todos os 8 K disponíveis. A maioria das instruções tem formato de palavra de 16-bits.
Figura 1 Arquitetura do ATmega8
Formato de Instruções
As instruções têm 16 bits, como dito acima. Normalmente utiliza-se 3 ou 4 bits para a chamada da instrução, sendo o resto destinado a parâmetros. Os parâmetros de cada grupo de instruções serão discutidos mais abaixo.
Modos de endereçamento
• Por registrador direto: O registrador contem valor.
• Por registrador indireto: O registrador contem o endereço de memória que possui o valor.
• Direto por I/O: 6 bits na instrução são utilizados para o endereço da memória de I/O, onde o valor será pego/enviado.
• Direto por memória: 16 bits em uma instrução de 2 palavras são utilizados para uma posição na memória onde contem o valor.
• Indireto por dados de deslocamento: o local a ser acessado é o apontado por um registrador Y ou Z somado a um endereço de 6 bits especificado na instrução.
Conjunto de Instruções
• Instruções Aritméticas: Conjunto de instruções responsáveis por resolver cálculos. Dentre as instruções mais utilizadas podemos citar: ADD, SUB e MUL. Comumente utiliza como parâmetros dois registradores ou o par de um registrador e um imediato ou endereço de memória.
• Instruções lógicas: Instruções responsáveis pelo conjunto de comparações lógicas. Normalmente utiliza como parâmetros um par de registradores ou um registrador e um imediato.
•