הסבר לחלק...
IP הוא ה Instruction Pointer. האוגר הזה, יחד עם ה CS - Code Segment מציין את מיקומה של ההוראה הבאה בתוכנית שמורצת (CS:IP). SP הוא ה Stack Pointer. האוגר הזה, יחד עם ה SS - Stack Segment, מציין את מיקומו של ´ראש´ ה stack (המיקום שבו נמצא הערך האחרון ש"נדחף" לstack, שהוא גם הערך הבא ש"יעלה" חזרה בהוראת הPOP הבאה, מן הסתם) - (SS:SP) אוגר הדגלים הוא אוגר בגודל מילה (כמו שאר האוגרים ה"רגילים", AX, BX וכו´), אבל, בעיקרון ה-8086/8088 "משתמש" רק ב-9 ביטים ממנו (אח"כ הוסיפו עוד ביטים במערכות היותר מתקדמות, נראה לי). כל אחד מתשעת הביטים מייצג דגל, שיכול, מן הסתם, להיות "דלוק" או "כבוי". יש הוראות מסוימות באסמבלי שמשפיעות באופן מסוים על אחד או יותר מהדגלים הללו. למשל ההוראה CMP משפיעה (בין היתר) על "דגל האפס" (Zero Flag) - היא "מדליקה" אותו אם השוויון קיים, ו"מכבה" אותו אם הוא לא; וכך, לאחר מכן, אפשר למשל להשתמש בהוראה JE שלמעשה בודקת עם "דגל האפס" ´דלוק´ או ´כבוי´ ופועלת בהתאם (JE ו JZ הן שתי הוראות זהות, וגם JNE ו JNZ...). יש עוד מטרות לדגלים. יש למשל את ה "Interrupt Flag", שאם הוא ´כבוי´, לא יפעלו אינטרפטים "רגילים" (Software Interrupts); אפשר ´לכבות´ אותו באמצעות ההוראה (CLI (Clear Interrupt Flag, או ´להדליק´ אותו עם STI (Set Interrupt Flag). למידע מפורט יותר על אוגר הדגלים -
לחץ כאן.