Objetivos
        
    
    
        
            Clique sobre os objetivos listados abaixo para navegar até o conteúdo desejado.
            
         
     
    
    
        
            
                Os modos de endereçamento representam a forma como os dados são recuperados pelo 
                processador para processamento de uma instrução. 
            
            
                O 68K possui algumas formas de endereçamento que serão vistos nesta parte do tutorial. 
                A compreensão total é importante para continuar os estudos do processador. 
            
            
                Diferentes assemblers, tutoriais, e manuais podem utilizar suas próprias notações diferentes
                das apresentadas ao longo desta parte do tutorial.
            
            Notação utilizada:
            
                
                    
                         | 
                         | 
                    
                
                
                    
                        | MNEMÔNICO | 
                        Nome da instrução abreviado | 
                    
                    
                        | #NNNNNN; | 
                        Endereço hexadecimal imediato | 
                    
                    
                        | .B | 
                        Byte | 
                    
                    
                        | .W | 
                        Word | 
                    
                    
                        | .L | 
                        Longword | 
                    
                    
                        | -> | 
                        Atribuição | 
                    
                    
                        | Dx,Dy | 
                        D0-D7 | 
                    
                    
                        | Ax,Ay | 
                        A0-A7 | 
                    
                    
                        | n | 
                        Valor 0-7 | 
                    
                    
                        | nn | 
                        Valor 16-bits sinalizado | 
                    
                    
                        | $ | 
                        Endereço de memória | 
                    
                    
                        | | | 
                        ou | 
                    
                
            
         
     
    
    
        
            
                No ME implícito, o mais básico dos endereçamentos, não há operandos para buscar. A própria instrução contém as 
                informações necessárias para execução.
            
            Sintaxe:
            MNEMÔNICO
            Ex:
            ;não faz nada
NOP
         
     
    
    
        
            
                No ME Registrador, dois registradores são os operandos onde os valores necessários para execução da
                instrução estão armazenados.
            
            Sintaxe:
            MNEMÔNICO.B Dx,Dy ; Dx -> Dy
MNEMÔNICO.W Dx,Dy ; Dx -> Dy
MNEMÔNICO.L Dx,Dy ; Dx -> Dy
            Ex:
            MOVE.B D0,D1
         
     
    
    
        
            
                No indireto, um valor byte , word ou Longword contido pelo endereço contido em A0-7
                é acessado para realizar um instrução.
            
            Sintaxe:
            MNEMÔNICO.B (Ax),Dx ; (Ax) -> Dx
MNEMÔNICO.W (Ax),Dx ; (Ax) -> Dx
MNEMÔNICO.L (Ax),Dx ; (Ax) -> Dx
            Ex:
            MOVE.L (A7),D0 
         
     
    
        Indirect With After Incremento / Indireto com Pós-incremento
        
     
    
        
            
                No indireto com pós-incremento, um valor byte , word ou Longword contido pelo endereço 
                em A0-7 é são utilizado pela instrução como o endereço da origem dos dados para realizar um instrução. 
                Após o uso do valor, o registrador de endereço é incrementado de acordo com o tamanho do dado.
            
            Sintaxe:
            MNEMÔNICO.B (Ax)+,Dx|Ay ; (Ax)+ -> Dx|Ay
MNEMÔNICO.W (Ax)+,Dx|Ay ; (Ax)+ -> Dx|Ay
MNEMÔNICO.L (Ax)+,Dx|Ay ; (Ax)+ -> Dx|Ay
            Ex:
            MOVE.L (A7)+,D0 
         
     
    
        Indirect With Predecrement / Indireto com Pré-decremento
        
     
    
        
            
                No modo indireto com pré-decremento um endereço contido em A0-7 é decrementando, de acordo com o tamanho do dado, 
                e assim um valor byte , word ou Longword contido nesse endereço é recuperado para sua 
                utilização.
            
            Sintaxe:
            MNEMÔNICO.B -(Ax),Dx|Ay ; -(Ax) -> Dx|Ay
MNEMÔNICO.W -(Ax),Dx|Ay ; -(Ax) -> Dx|Ay
MNEMÔNICO.L -(Ax),Dx|Ay ; -(Ax) -> Dx|Ay
            Ex:
            MOVE.L -(A7),D0 
         
     
    
        Indirect Index / Indireto Indexado 
        
     
    
        
            
                No indireto Indexado, um valor byte, word ou Longword contido no endereço A0-7
                é indexado a um valor n(0-7), ou indexado com um registrador D0-7 para a instrução calcular 
                o endereço de acesso.
            
            Sintaxe:
            1. MNEMÔNICO n(Ax),Dx
2. MNEMÔNICO n(Ax,Dx.L|.W),Dx
3. MNEMÔNICO n(Ax,Ay.L|.W),Dx
            
                Em (2) e (3), quando usado com .W, o valor 16-bits(Entre -32768 e +32767) do registrador 
                é tratado como sinalizado. 
            
            Ex:
            MOVE.L 4(A0,A1.L),D7
MOVE.L -16(A0,A1.L),D7
         
     
    
        Absolute Imediate/ Absoluto Imediato
        
     
    
        
            
                No endereçamento absoluto, um valor imediato de 16-bits ou 32-Bits é utilizado como 
                endereço de origem ou destino de um dado em memória. 
            
            Sintaxe:
            MNEMÔNICO $NNNN,Dx
MNEMÔNICO $NNNNNN,Dx
            Ex:
            MOVE.L $F00000,D0
         
     
    
        Program Count Indexed / Contador de Programa Indexado
        
     
    
        
            
                Nesse modo de endereçamento, o registrador PC é utilizado ao invés dos 
                registradores A0-7. Um valor nn sinalizado de 16-Bits(-32768 a +32767) é utilizado como índice.
            
            Sintaxe:
            1. MNEMÔNICO nn(PC),Dx
2. MNEMÔNICO nn(PC,Dx.W|.L)
3. MNEMÔNICO nn(PC,Ax.W|.L)
            
                Em (2) e (3), quando usado com .W, o valor 16-bits(-32768 a +32767) 
                do registrador é tratado como sinalizado. 
            
            Ex:
            MOVE.L $FFFF(PC),D0
         
     
    
    
        
            
                No ME imediato, um valor byte , word ou Longword imediato 
                faz parte da instrução. Tanto os registradores D0-7 quanto A0-7 utilizam esse modo.
            
            Sintaxe:
            MNEMÔNICO.B #$valor,Dx ; $valor -> Dx
MNEMÔNICO.W #$valor,Dx ; $valor -> Dx
MNEMÔNICO.L #$valor,Dx ; $valor -> Dx
MNEMÔNICO.B #$valor,Ax ; $valor -> Ax
MNEMÔNICO.W #$valor,Ax ; $valor -> Ax
MNEMÔNICO.L #$valor,Ax ; $valor -> Ax
            Ex:
            MOVE.L #$FFFFFF,D0
MOVEA.L #$C00000,A0
         
     
    
        Histórico de atualizações
        
     
    
        
            
                - 05/09/2024 - Revisão 1 - Correção de erros gramaticais, sintaxe de modo de endereçamento
 
                - 01/04/2023 - 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.