Condition Code
Selain register integer, CPU juga berisi se-set single-bit register condition code yang mendeskripsikan atribut-atribut operasi arithmetic atau logic yang baru saja dilakukan. Register-register ini dapat di tes untuk melakukan conditional branches. Condition code yang paling umum digunakan :
CF : Carry Flag
Operasi ynag baru saja dilakukan yang menghasilkan carry out dari most significant bit. Digunakan untuk mendeteksi overflow untuk operasi unsign.
ZF : Zerro Flag
Operasi yang baru saja dilakukan yang menghasilkan zero.
SF : Sign Flag
Operasi yang baru saja dilakukan menghasilkan nilai negative.
OF : Overflow Flag
Operasi yang baru saja dilakukan menyebabkan sebuah bilangan two’s complement menjadi overflow – baik itu negative maupun positive.
Untuk contoh, misalnya kita menggunakan instruksi addl untuk melakukan operasi yang ekivalen dari bahasa C, t = a + b, dimana variable a, b, dan t adalah type integer. Lalu condition code akan mengeset register condition code terhadap expresi C tersebut :
CF : (unsigned t ) < (unsigned a) Unsigned Overflow
ZF : (t == 0) Zero
SF : (t < 0) Negative
OF: (a < 0 == b <0) && (t < 0 != a <0) Signed Overflow
Instruksi leal tidak mengubah sedikitpun condition code, karena instruksi tersebut digunakan dalam komputasi address. Selain itu, semua instruksi yang terdaftar pada table dibawah ini menyebabkan condition code di set. Untuk operasi logika, seperti xorl, carry dan overflow flag diset ke 0.

Selain operasi-operasi pada table di atas, table berikut menunjukkan dua operasi yang mengeset condition code tanpa mengeset register lainnya.

Instruksi cmpb, cmpw, dan cmpl mengeset condition code menurut perbedaan 2 operand mereka. Dengan format GAS, operand tersebut dilist dalam keadaan terbalik, membuat instruksi tersebut susah untuk dibaca. Instruksi ini mengeset zero flag jika dua operand adalah sama. Flag lain dapat digunakan untuk menentukan hubungan antara 2 operand.
Instruksi testb, testw, dan testl mengeset zero dan negative flag berdasarkan operasi AND dari 2 operand. Cara mengetiknya, operand yang sama dapat diulang-ulang (contoh testl %eax, %eax untuk melihat apakah %eax adalah negative, zero, atau positive), atau salah satu operand adalah sebuah indikasi bit yang akan di tes.