پرچم zf که میگه اگر عدد 0 بود zf میشه 1 یعنی جواب مثلا باید اینجوری باشه 000000 یا اینجوری 01111111
یعنی تمام اعداد 0 یا فقط اولش .
تمام بیت های عددی که نتیجه محاسبه است، بایستی صفر باشد، مثلا نتیجه زوج دستورات زیر صفر است و
zf یک می شود :
چون اگر مقدار 1 موجود در al را 255 واحد افزایش دهیم، چون al یک بایتی (8 بیتی) است، حداکثر عدد 255
در آن جا می شود و سر ریزی رخ داده و مجددا al صفر می شود.
چون اگر 128 که بصورت باینری 10000000 است را یک بیت به سمت چپ شیفت بدهیم، بیت 1 سمت چپ از
محدوده 8 بیتی خارج شده و مقدار ch صفر می گردد.
چون اگر از 5 به مقدار 5 واحد کسر کنیم، صفر می گردد.
چون اگر عدد 7 (معادل 0000000000000111 باینری) را با عدد 8 (معادل 0000000000001000 باینری) and کنیم،
حاصل صفر است و ax صفر می گردد.
دستور test شبیه and است، ولی با این تفاوت که نتیجه محاسبه را ذخیره نمی کند، یعنی مقدار ax همچنان
7 باقی می ماند ولی پرچم zf مطابق نتیجه محاسبه یک خواهد شد.
توجه داشته باشید که تمامی دستوراتی که محاسبه انجام می دهند، روی فلگ ها تاثیر ندارند، مثلا دستور not با
آنکه محاسبه انجام می دهد روی هیچکدام از پرچم ها تاثیری ندارد و مقدار zf را تغییر نمی دهد.
بعضی از دستورات هم فلگ ها رو تغییر می دهند ولی مقدار فلگ ها بعد از اجرایشان مشخص نیست، مثلا
دستورات mul و div مقدار فلگ ها را تغییر می دهند، ولی نه بر اساس نتیجه محاسبه.