Microcontroladores
Arquitetura PIC16
Como dito antes, o assembly é a representação simbólica da linguagem de máquina. Então, antes de aprendermos a programar em assembly, devemos entender como funciona o processador em questão. Questões como tamanho da memória e sua organização, modos de endereçamento, registradores especiais e o próprio conjunto de instruções precisam ser bem estudadas.
Os “PIC16” são micro-controladores de arquitetura RISC ( Reduced Instruction Set Computer). Esta arquitetura permite que o micro-controlador tenha um conjunto de instruções mais simples e de menor número (apenas 35), dois formatos de instrução apenas (uma para instruções que manipulam bits e outras para bytes), execução de uma instrução por ciclo de máquina, pipeline de execução e busca de instruções, e amplo número de registradores de uso geral.
Essa família possui uma arquitetura baseada em acumulador (o registrador W), todas as instruções lógicas e aritméticas são referenciadas à ele. Os registradores são divididos em duas categorias: especiais (SFR) e de propósitos geral (GPR). A maior parte dos SFRs são usados para configurar e usar os diversos periféricos disponíveis. O registrador de STATUS sinaliza condições especiais ocorridas durante as operações. Ele vai ser muito útil quando iniciarmos a programação!
A memória dos PIC16 está organizada de modo que o barramento de dados é separado do barramento de instruções (arquitetura harward modificada). Dessa forma, podem-se realizar acessos simultâneos as duas regiões de memória. Entretanto, as duas memórias estão organizadas em regiões de endereçamento especial, os conhecidos bancos de memória (paginação). Todo mundo que já trabalhou com essa família tem alguma coisa para falar desse “recurso”. Muitos erros de programação consistem na utilização errada ou de enganos em relação aos bancos de memória.
Os dispositivos da MIDRANGE possuem uma pilha de oito níveis, isolada da região endereçável de memória. A pilha serve para