O registrador FLAGS e os bits de estado
Explore o registrador EFLAGS/RFLAGS: veja como instruções aritméticas e de comparação definem sinalizadores de estado como ZF, CF, SF e OF, que orientam todas as decisões condicionais.
O registrador FLAGS e os bits de estado é uma aula grátis de Assembly Language & x86 Low-Level Systems Programming no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Assembly Language & x86 Low-Level Systems Programming, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Assembly Language & x86 Low-Level Systems Programming inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
What is the FLAGS Register?
The FLAGS register (EFLAGS in 32-bit, RFLAGS in 64-bit) is a special register where individual bits record the result of the most recent operation.
Why Flags Matter
The CPU has no boolean type. Instead, instructions set flag bits, and conditional jumps read them. Flags are the glue between arithmetic and control flow.
The Zero Flag (ZF)
ZF is set to 1 when the result of an operation is zero. It is the basis of equality tests.
cmp eax, ebx ; sets ZF if eax == ebxThe Carry Flag (CF)
CF is set when an unsigned operation overflows out of the most significant bit, e.g. an addition that exceeds the register width.
add al, 1 ; CF set if al was 0xFFThe Sign Flag (SF)
SF copies the most significant bit of the result, indicating a negative value in signed interpretation.
The Overflow Flag (OF)
OF is set when a signed operation produces a result too large or small for the destination, i.e. signed overflow.
How CMP Works
CMP a, b performs a - b but discards the result, keeping only the flags. This lets you test relationships without changing operands.
cmp eax, 10TEST for Bit Checks
TEST a, b computes a bitwise AND, discards the result, and sets flags, commonly used to check if a value is zero or test specific bits.
test eax, eax ; ZF set if eax == 0Flags Drive Conditional Jumps
Conditional jumps read flags:
JE/JZ: jump if ZF=1JNE/JNZ: jump if ZF=0JC: jump if CF=1JG: signed greater (uses ZF, SF, OF)
Signed vs Unsigned Conditions
Signed comparisons use SF and OF; unsigned comparisons use CF. Choosing the wrong jump (JA vs JG) is a classic bug.
Directly Affecting Flags
Some instructions set or clear flags explicitly, like STC (set carry) and CLC (clear carry), useful before multi-precision arithmetic.
clc ; clear carry before add chainQuick Check
Test your understanding of CPU flags.
Recap
You learned the FLAGS register:
- ZF zero, CF unsigned overflow, SF sign, OF signed overflow
CMPandTESTset flags without storing results- Conditional jumps branch on flag state
- Match signed/unsigned jumps to the comparison
Aprenda Assembly com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 12
- Aulas
- 48
Perguntas Frequentes
A aula “O registrador FLAGS e os bits de estado” é grátis?
Sim — o texto completo de “O registrador FLAGS e os bits de estado” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Assembly Language & x86 Low-Level Systems Programming, atualize para CoddyKit PRO. O curso de Assembly Language & x86 Low-Level Systems Programming inclui 4 aulas no total.
O que vou aprender em “O registrador FLAGS e os bits de estado”?
Explore o registrador EFLAGS/RFLAGS: veja como instruções aritméticas e de comparação definem sinalizadores de estado como ZF, CF, SF e OF, que orientam todas as decisões condicionais. Você pratica Assembly Language & x86 Low-Level Systems Programming com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Assembly Language & x86 Low-Level Systems Programming?
Nenhuma experiência prévia é necessária. Assembly Language & x86 Low-Level Systems Programming no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “O registrador FLAGS e os bits de estado”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Assembly Language & x86 Low-Level Systems Programming?
Sim. Cada aula de Assembly Language & x86 Low-Level Systems Programming inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Desmistificando os registradores x86
- Modos de endereçamento da memória
- Representação e tipos de dados
- O registrador FLAGS e os bits de estado