Zusammenfassung der Ressource
Assembly
- Sequência de instruções que
antecedem o código de máquina
- Uma instrução é um mnemônico
- Cada instrução tem sua quantidade de
argumentos definidas
- Label
- Agrupamento de instruções
- Tem um nome para ser
identificado como um bloco
- Está associado a um endereço de memória
- Cada processador tem seu código assembly,
porque cada processador tem suas
instruções
- Deve saber-se o aparelho em que está programando, para saber os
limites de memória e processamento que ele possui
- Atmega 328p(Microcontrolador)
Trabalhado em aula
- Memória Flash(Programa)
- Guarda o código de máquina
- Memória que não será
apagada, ao menos que seja
sobrescrita
- Trabalha com 16
bits
- Denominado Bus Program
- Processo de leitura dos dados
- PC é iniciado com 0, ou
seja inicia na linha 0
- A instrução contida na linha Reg.
de Instrução recebe a mesma
- Decoder recebe o valor geralmente em
Hexadecimal da instrução contida naquela
linha, e decodifica para binário para que possa
ser lida pelo sistema
- O valor em binário enfim
decodificado, vai diretamente ao Bus
Control para ser distribuído
- De acordo com a instrução, o valor
poderá ser levado a alguma parte da
RAM, e posteriormente ser utilizado
pela ULA, ou só ficar guardado na RAM
- Após a última instrução, dependendo,
algum bit do SREG pode ser alterado
- PC é incrementado(PC = PC + 1), ou seja,
PC vai para a próxima linha, e então o ciclo se repete
- Memória RAM(Volátil)
- Registradores
- Armazenam valores
para uma posterior
utilização
- Registradores de I/O
- PORTx
- Defini se um pino está
ligado(1), ou desligado(0)
- Pull-up
- Evita que o pino fique flutuando
- Valor lógico de ligado(1 no PORTx)
em uma entrada(0 no DDRx)
- Quando se define um pino como entrada(0),
e seu status como ligado(1 no PORTx), o
mesmo está habilitado com pull-up
- Ao colocar um pino de saída como ligado(1 no PORTx),
enviamos um dado lógico a aquele pino
- DDRx
- Define se um pino é de
entrada(0), ou saída(1)
- Pinx
- Faz leitura e armazenamento do nível lógico de cada pino
- Armazena o valor dentro de um pino,
quando definido como entrada(0)
- É possível escrever valores em
registradores PINx, e o mesmo
afetará o PORTx
- Ex: Um pino definido como saída, ao escrever
1(ligado) nessa entrada, o mesmo valor será
atribuído ao PORTx
- Registradores
GPR(Registradores de
Proposito Geral)
- São registradores numerados do R0 ao R31
- R26 e R27 é o registrador X
R28 e R29 é o registrador Y
R30 e R31 é o registrador Z
- No total, armazenam cada um, no máximo 16 bits
- São memórias de uso mais
rápido da ULA, e de mais fácil
carregamento(prático)
- Registrador de Instrução
- Armazena a instrução
sendo realizada no
momento
- Registrador de Status(SREG)
- Registrador que armazena valores de status da
últiam operação(instrução), ou se ela gerou algo
- Mais usados: T, Z, N e C
- T(Bit Copy Storage), bit 5. Representa Bit de
cópia temporária do registrador
- Z(Zero Flag), bit 1. Representa
quando uma operação resulta em 0
- N(Negative Flag), bit 2. Representa
quando uma operação resulta em
valor negativo
- C(Carry Flag), bit 0. Representa quando em uma
operação resulta em estouro, ou seja, valores
acima de 8 bits, no caso do atmega328p
- Ex: Uma soma de 255 + 1, é igual a 256, ou seja, um estouro(carry), pois o valor 256
em decimal ocupa 9 bits, ou seja, maior do que o suportado na memória RAM
- Trabalha na
manipulação de 8
bits(0 a 255)
- Memória que será
apagada quando o
programa terminar
- SRAM
- Memória também
de fácil acesso
- Está associado somente
a endereços, sem conter
um nome
- Periféricos
- Portas de
I/O
- Possibilita contato com o mundo exterior,
como ligar um LED, ou conectar um botão,
por exemplo.
- Possui 3 portas, B; C e
D
- EEPROM, Clock, A/D,
Interrupção, Comparador
e SPI
- ULA(Unidade lógica e
aritmética)
- Uma das principais partes
do Microcontrolador
- Faz operações matemáticas e lógicas de
2 conjunto de números por vez,
de no máximo 8 bits cada
- Decoder
- Decodifica a instrução contida
no Reg. de instrução para ser
utilizada pelo sistema
- Bus Control
- Linhas de transmissão de
dados
- PC
- Guarda a linha(endereço) de
leitura do programa