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.