Objetivos
        
    
    
    
    
        
            
                As instruções de comparação são utilizadas para comparar valores de memória, ou imediato, com os registradores 
                Acumulador, X e Y, e atualizar as flags de status de acordo com o resultado.
            
            
                Internamente uma subtração é feita e o resultado é utilizado para setar as 
                flags N, Z e C, e posteriormente descartado.
            
            Notação utilizada
            
                
                    
                         | 
                         | 
                    
                
                
                    
                        | #$NN | 
                        Valor hexadecimal imediato | 
                    
                    
                        | #$NNNN; | 
                        Endereço hexadecimal imediato | 
                    
                    
                        | $NNNN | 
                        Endereço hexadecimal | 
                    
                    
                        | $NN ou h | 
                        Valor hexadecimal | 
                    
                    
                        | ;  | 
                        Comentário | 
                    
                    
                        | () | 
                        Conteúdo de memória | 
                    
                    
                        | Flags | 
                         | 
                    
                    
                        | a | 
                        Alterada de acordo com resultado | 
                    
                    
                        | - | 
                        Não sofre alteração | 
                    
                    
                        | 0 | 
                        Sempre zero | 
                    
                    
                        | 1 | 
                        Sempre um | 
                    
                
            
            
                Mais informações sobre os registradores e flags podem ser vistas 
                em Registradores.
            
         
     
    
        CMP - Compare Accumulator - Comparar Acumulador
        
     
    
        
            
                Esta instrução compara um valor de memória ou imediato com o registrador acumulador e atualiza as flags de acordo com o resultado.
            
            Operação
            Z,C,N = A - M
Z,C,N = A - #$NN
            Endereçamento
            
                
                
                
                    
                        | Imediato | 
                        CMP #$NN | 
                    
                    
                        | Página Zero | 
                        CMP $NN | 
                    
                    
                        | Página Zero,X | 
                        CMP $NN,X | 
                    
                    
                        | Absoluto | 
                        CMP $NNNN | 
                    
                    
                        | Absoluto,X | 
                        CMP $NNNN,X | 
                    
                    
                        | Absoluto,Y | 
                        CMP $NNNN,Y | 
                    
                    
                        | Indireto X | 
                        CMP ($NN,X) | 
                    
                    
                        | Indireto Y | 
                        CMP ($NN),Y | 
                    
                
            
            PS - Flags afetadas
            N: a
V: -
B: - 
D: -
D: -
Z: a
C: a
            Ex.:
            
LDA #$01
CMP #$01 ; Z = 1 N = 0 e C=0
         
     
    
        CPX - Compare X Register - Compara Registrador X
        
     
    
        
            
                Esta instrução compara um valor de memória ou imediato com o registrador X e atualiza as flags de acordo com o resultado.
            
            Operação
            Z,C,N = X - M
Z,C,N = X - #$NN
            Endereçamento
            
                
                
                
                    
                        | Imediato | 
                        CPX #$NN | 
                    
                    
                        | Página Zero | 
                        CPX $NN | 
                    
                    
                        | Absoluto | 
                        CPX $NNNN | 
                    
                
            
            PS - Flags afetadas
            N: a
V: -
B: - 
D: -
D: -
Z: a
C: a
            Ex.:
            
LDX #$01
CPX #$01 ; Z = 1 N = 0 e C=0
         
     
    
        CPY - Compare Y Register - Compara Registrador Y
        
     
    
        
            
                Esta instrução compara um valor de memória ou imediato com o registrador Y e atualiza as flags de 
                acordo com o resultado.
            
            Operação
            Z,C,N = Y - M
Z,C,N = Y - #$NN
            Endereçamento
            
                
                
                
                    
                        | Imediato | 
                        CPY #$NN | 
                    
                    
                        | Página Zero | 
                        CPY $NN | 
                    
                    
                        | Absoluto | 
                        CPY $NNNN | 
                    
                
            
            PS - Flags afetadas
            N: a
V: -
B: - 
D: -
D: -
Z: a
C: a
            Ex.:
            
LDY #$01
CPY #$01 ; Z = 1 N = 0 e C=0
         
     
    
        Histórico de atualizações
        
     
    
        
            
                - 12/03/2025 - revisão 3 - ajuste em intro 
 
                - 11/09/2024 - revisão 2 - adição de flags afetadas, correção em CPY
 
                - 04/10/2023 - revisão 1 - adição de links, correção em layout e navegação
 
                - 28/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.