Objetivos
As instruções referente as flags do 6502 tem o propósito de setar ou resetar seus valores.
Todas as instruções abaixo utilizam o modo de endereçamento implícito.
Notação utilizada:
|
|
<- |
Atribuição |
; |
Comentário |
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.
CLC - Clear Carry Flag - Limpar Flag Carry
Ao executar a instrução CLC, a flag Carry tem seu valor atualizado para 0. Essa instrução é utilizada
em conjunto com as instruções ADC e SBC.
Operação:
C <- 0
Endereçamento:
PS - Flags afetadas
N: -
V: -
B: -
D: -
Z: -
C: 0
Ex:
CLC
LDA $01
ADC $01
CLD - Clear Decimal Flag - LImpar Flag Decimal
Ao executar a instrução CLD, a flag Decimal tem seu valor atualizado para 0 configurando o processador para
o modo aritmética BCD para as instruções ADC e SBC.
Operação:
D <- 0
Endereçamento:
PS - Flags afetadas
N: -
V: -
B: -
D: -
D: 0
Z: -
C: -
Ex:
CLD
LDA $01
ADC $01
CLI - Clear Interrupt Disable Flag - Limpar Flag de Interrupção
Ao executar a instrução CLI, a flag Interrupt Disable tem seu valor atualizado para 0.
Com isso, interrupções mascaráveis(IRQ) não podem ser recebidas e executadas.
Operação:
I <- 0
Endereçamento:
PS - Flags afetadas
N: -
V: -
B: -
I: 0
D: -
Z: -
C: -
Ex:
funcao:
CLI ;
; corpo da funcao
RET;
CLV - Clear Overflow Flag - Limpar Flag Overflow
Ao executar a instrução CLV, a flag Overflow seu valor atualizado para 0. A flag overflow diz respeito
a mudança de sinalização quando ADC e SBC são executadas.
Operação:
V <- 0
Endereçamento:
PS - Flags afetadas
N: -
V: 0
B: -
D: -
Z: -
C: -
Ex:
LDA #$05
ADC $00
CLV
SEC - Set Carry Flag - Setar Flag Carry
Ao executar a instrução SEC, a flag Carry tem seu valor atualizado para 1. Essa instrução é utilizada
em conjunto com as instruções ADC e SBC.
Operação:
C <- 1
Endereçamento:
PS - Flags afetadas
N: -
V: -
B: -
D: -
Z: -
C: -
Ex:
SEC
LDA #$01
ADC #$01
Ao executar a instrução SED, a flag Decimal tem seu valor atualizado para 1 configurando o processador no
modo aritmética binária para as instruções ADC e SBC.
Operação:
D <- 0
Endereçamento:
PS - Flags afetadas
N: -
V: -
B: -
D: -
D: 1
Z: -
C: -
Ex:
SED ; habilita adição decimal
LDA #$09 ;
ADC $01 ; 9 + 1 = 10, não 0Ah
SEI - Set Interrupt Disable Flag
Ao executar a instrução SEI, a flag Interrupt Disable tem seu valor atualizado para 1.
Com isso, interrupções mascaráveis(IRQ) são recebidas e executadas.
Operação:
I <- 1
Endereçamento:
PS - Flags afetadas
N: -
V: -
B: -
I: 1
Z: -
C:-
Ex:
CLI ; desabilita interrupções
; corpo de função
SEI ; habilita interrupções
Histórico de atualizações
- 12/03/2025 - revisão 3 - adição de informações sobre uso das flags afetadas C, D e V
- 11/09/2024 - revisão 2 - adição de flags afetadas, correção em descrição/endereçamento CLV
- 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.