Page 2 - control flow
P. 2
CONDITION CODE
Pengesetan Condition Code
o Register satu bit
CF Carry Flag SF Sign flag
ZF Zero Flag OF Overflow Flag o Pengesetan secara eksplisit
dengan instruksi Compare
o Di-set secara implisit dalam o cmpl Src2,Src1
operasi aritmatika addl o cmpl b,a seperti menghitung
Src,Dest a-b tanpa men-set tujuannya
Kode C : t = a + b o CF di-set jika terdapat carry out
o CF di-set jika terdapat carry out pada most significant bit
pada most significant bit (Digunakan untuk
(Digunakan untuk mendeteksi membandingkan unsigned)
unsigned overflow) o ZF di-set jika a == b
o ZF di-set jika t == 0 o SF di-set jika (a-b) < 0
o OF di-set jika terjadi two’s
o SF di-set jika t < 0
complement overflow
o OF di-set jika two’s complement
(a>0 && b<0 && (a-b)<0) || (a<0
overflow (a>0 && b>0 && t<0) ||
&& b>0 && (a-b)>0)
(a<0 && b<0 && t>=0)
o Instruksi leal tidak men-set o Pengesetan secara eksplisit
condition code dengan instruksi Test
testl Src2,Src1
o Men-set condition code
berdasarkan nilai dari Src1 &
Src2
(Biasanya digunakan pada operasi
masking)
o testl b,a seperti menghitung a&b
tanpa men-set tujuannya
o ZF di-set jika a&b == 0
o SF di-set jika a&b < 0