Objetivos
O 68K possui ao todo 16 registradores: D0-D7 e A0-A7, PC, SP
e Flags que estão listados de forma resumida nas tabelas abaixo tendo suas descrições e
uso explicados mais adiante.
Tab. 1: Registradores
Registrador |
Descrição |
Tamanho(bits) |
D0-D7 |
Registradores de Dado |
8/16/32-Bits |
A0-A7 |
Registradores de Endereço |
24-bits |
PC |
Program Counter |
24-bits |
SP/A7 |
Stack Pointer |
24-Bits |
SR/Flag/CCR |
Status Register/ Flags/ Condition Code Register |
16-Bits |
Tab.2: Status Register
Bit15 |
Bit14 |
Bit13 |
Bit12 |
Bit11 |
Bit10 |
Bit9 |
Bit8 |
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
T |
- |
S |
- |
- |
I2 |
I1 |
I0 |
- |
- |
- |
X |
N |
Z |
V |
C |
O registrador SP utiliza o registrador A7 por padrão. Esse valor inicial é definido no vetor de interrupções.
O acesso ao valores 16/32 em memória possui restrições em relação o endereço utilizado.
Os registradores A0-A7 podem utilizar até 6 modos diferentes de endereçamento para acessar valores
em memória.
D0-D7 - Registradores de Dados
Os registradores D0-D7 são é utilizado em operações aritméticas, lógicas, pilha, carregamento e
armazenamento de dados. Não há o conceito de acumulador no 68K. Esses registradores podem armazenar
valores sinalizados e não-sinalizados.
A0-A7 - Registradores de endereço
O registradores A0-A7, que são usados para armazenar endereços de memória, tanto para acessar valores em memória quanto utilizados para
armazenar valores. Podem ser utilizados em conjunto para em alguns modos de endereçamento. O registrador A7 tem uso específico.
Program Counter - Contador de Programa
O PC é um registrador de 24-bits que armazena o endereço da próxima instrução que será executada pelo
processador. Este registrador é incrementado automaticamente à medida que as instruções
vão sendo executadas ou modificadas por algumas instruções de desvio de fluxo.
Stack Pointer - Ponteiro para Pilha
O SP é um registrador de 24-bits que armazena o endereço do topo da pilha(Stack) do 68K.
Este registrador é incrementado explicitamente ou implícitamente por instruções de stack frame. Por padrão, o registrador A7 é configurado
inicialmente como o SP podendo ser acesso tanto como SP ou A7.
O 68K possui um grupo de flags para que possamos entender seu status após a execuções de suas instruções e
interrupções.
As flags de 0-7 são conhecidas flags do usuário ou CCR enquanto as flags 8-15 são conhecidas como flags
do sistema. Juntas formam o Status Register(SR)
Tab. 3: Status Register
Bit15 |
Bit14 |
Bit13 |
Bit12 |
Bit11 |
Bit10 |
Bit9 |
Bit8 |
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
T |
- |
S |
- |
- |
I2 |
I1 |
I0 |
- |
- |
- |
X |
N |
Z |
V |
C |
Bit 0: Carry
A flag C(Carry), pode ser entendida como o "Vai-um ou Vem-um" em operações aritméticas de soma e subtração.
Em instrução de deslocamento e rotação de bits armazena os bits mais e menos significativos.
Bit 1: Overflow
A flag O(Overflow) é utilizada em operações que envolvem aritmética sinalizada indicando um extravasamento no armazenamento.
Por exemplo, se dois valores de mesmo sinal são somados e um valor de sinal contrário é gerado, há overflow. Havendo overflow, a flag recebe o valor 1, caso contrário recebe o valor 0.
Bit 2: Zero
A flag Z(Zero) indica que o valor carregado em um registrador ou memória é igual a zero ou não.
Se for igual a zero, a flag recebe o valor 1, caso contrário recebe o valor de 0.
Bit 3: Negative
A flag N(Negative) indica a sinalização de um valor armazenado em um registrador. Se um valor for positivo,
a flag recebe valor 0, caso seja negativo recebe o valor 1. Um valor sinalizado é indicado pelo bit
mais significativo.
Bit X : Extended
Flag que armazena uma cópia de Carry após a execução de algumas instruções. A flag X não é alterada
por todas instruções e pode ser utilizada para realizar validações em cascata.
Bit 8-10: Interrupt Mask(IM) / Máscara de Interrupções
A flag composta do bits 8-10 armazenam a prioridade das interruções. Uma interrupção é executada ou ignorada
de acordo com essa flag.
Tab. 4: Interrupt Mask
Nível |
I2 |
I1 |
I0 |
Prioridade |
0 |
0 |
0 |
0 |
Todas Ignoras |
1 |
0 |
0 |
1 |
1 |
2 |
0 |
1 |
0 |
2 |
3 |
0 |
1 |
1 |
3 |
4 |
1 |
0 |
0 |
4 |
5 |
1 |
0 |
1 |
5 |
6 |
1 |
1 |
0 |
6 |
7 |
1 |
1 |
1 |
MNI* |
*MNI - Interrupção não mascarável.
Bit 13: S - Supervisor Bit
Essa flag habilita o modo supervisor. Utilizada por sistemas operacionais.
Bit 15: T - Trace bit
A flag T é utilizada para debug. Uma vez habilitada, uma interrupção é executada após cada instrução executada.
Histórico de atualizações
- 05/09/2024 - Revsisão 1 - Correção em erros gramaticais
- 01/04/2024 - versão inicial
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.