ããä»åè½ä¸ååï¼CPUå
é¨å¯åå为æ»çº¿æ¥å£åå
BIUï¼Bus Interface Unitï¼ä¸æ§è¡åå
EUï¼Execution Unitï¼ï¼
ããæ»çº¿æ¥å£åå
BIU
ããBIUè´è´£CPUä¸
åå¨å¨ãå¤è®¾ä¹é´çæ°æ®ä¼ éï¼å
æ¬åå¨å¨è¯»åï¼I/Oæ¥å£è¯»å以ååæ令ã
ããBIUç±æ®µ
å¯åå¨ï¼CSãDSãSSãESï¼ãæ令æéå¯åå¨ï¼IPï¼ãå°åå æ³å¨ãå
é¨å¯åå¨ãæ令éåç¼å²å¨åI/Oæ§å¶é»è¾çé¨åç»æã
ãã2. æ令æ§è¡åå
é¨ä»¶EU
ããEUè´è´£æ令æ§è¡ï¼å®ç±éç¨å¯åå¨ç»ãä¸ç¨å¯åå¨ç»ãç®æ¯é»è¾è¿ç®åå
ï¼ALUï¼ãæ å¿å¯åå¨ï¼FRï¼åå
é¨æ§å¶é»è¾ç»æã
ããä»ä¸å¯çåºï¼BIUè´è´£å®æåæ令ä¸ååæä½æ°ï¼å³CPUææä¸å¤é¨æ»çº¿æå
³çæä½åç±å
¶å®æãèEUåè´è´£åæãæ§è¡æ令ï¼å¹¶ä¸éä¸CPUå¤é¨æ»çº¿ç´æ¥åçèç³»ï¼å
¶æéçæ°æ®åæ产ççç»æé½éè¿BIUæ¥æ¶æä¼ éå°å¤é¨æ»çº¿ãBIUä¸EU两个åå
ä¸èµ·å¹¶è¡å·¥ä½ï¼ä½¿å¾åæ令ä¸æ§è¡æ令çæä½å¹¶è¡è¿è¡ï¼ä»è大大æé«äº
å·¥ä½æçã
ããå¾ä¸ç8086ä¸å
±æ4个16ä½çéç¨å¯åå¨ï¼AXãBXãCXãDXï¼ï¼4个16ä½çæéä¸ååå¯åå¨ï¼BPãSPãSIãDIï¼ï¼4个16ä½ç段å¯åå¨ï¼CSãDSãSSãESï¼ï¼ä¸ä¸ªæ令æéå¯åå¨ï¼IPï¼åä¸ä¸ªæ å¿å¯åå¨ï¼PSWï¼ã
ããé ç¨
ããå¯åå¨
ãã15 - 8 7 - 0
ããç´¯ å å¨ï¼AXï¼ AH AL
ããåºåå¯åå¨ï¼BXï¼ BH BL
ãã计 æ° å¨ï¼CXï¼ CH CL
ããæ°æ®å¯åå¨ï¼DXï¼ DH DL
ããæ é
ããååå
ããå¯åå¨
ãã15 - 0
ãã
å æ æ示å¨ï¼SPï¼ SP
ããåºåæ示å¨ï¼BPï¼ BP
ããæº åå å¨ï¼SIï¼ SI
ããç®çååå¨ï¼DIï¼ DI
ããæ§ å¶
ããå¯åå¨ 15 - 0
ããæ令æ示å¨ï¼IPï¼ IP
ããæ å¿å¯åå¨ï¼FRï¼ FR
ãã段å¯åå¨ 15 - 0
ãã代ç 段å¯åå¨ï¼CSï¼ CS
ããæ°æ®æ®µå¯åå¨ï¼DSï¼ DS
ããå æ 段å¯åå¨ï¼SSï¼ SS
ããéå 段å¯åå¨ï¼ESï¼ ES
ãã注ï¼
ããå
¶ä¸4个éç¨å¯åå¨é½å¯ä»¥ææé«8ä½ä¸ä½8ä½ä¸¤ä¸ªå¯åå¨æ¥ä½¿ç¨ã
ãã4个ååæéå¯åå¨ï¼SPãBPãSIãDIï¼ä¸å两个称为âå°åæéâï¼å两个称为âååå¯åå¨âã
ããéç¨å¯åå¨çç¹æ®ç¨éåéå«æ§è´¨
ããå¯åå¨å ç¹æ®ç¨é éå«æ§è´¨
ããAX, AL å¨è¾å
¥è¾åºæ令ä¸ä½æ°æ®å¯åå¨ç¨ ä¸è½éå«
ããå¨ä¹æ³æ令ä¸åæ¾è¢«ä¹æ°æä¹ç§¯ï¼
ããå¨é¤æ³æ令ä¸åæ¾
被é¤æ°æå éå«
ããAH å¨LAHFæ令ä¸ï¼ä½ç®æ å¯åå¨ç¨ éå«
ããAL å¨
åè¿å¶è¿ç®æ令ä¸ä½ç´¯å å¨ç¨ éå«
ããå¨XLATæ令ä¸ä½ç´¯å å¨ç¨ éå«
ããBX å¨é´æ¥å¯»åä¸ä½åºåå¯åå¨ç¨ ä¸è½éå«
ããå¨XLATæ令ä¸ä½åºåå¯åå¨ç¨ éå«
ããCX å¨ä¸²æä½æ令åLOOPæ令ä¸ä½
计æ°å¨ç¨ éå«
ããCL å¨ç§»ä½/循ç¯ç§»ä½æ令ä¸ä½ç§»ä½æ¬¡æ°è®¡æ°å¨ç¨ ä¸è½éå«
ããDX å¨åä¹æ³/é¤æ³æ令ä¸åæ¾
ããä¹ç§¯é«ä½æ被é¤æ°é«ä½æ
ä½æ° éå«
ããå¨é´æ¥å¯»åçè¾å
¥è¾åºæ令ä¸ä½å°åå¯åå¨ç¨ ä¸è½éå«
ããSI å¨
å符串è¿ç®æ令ä¸ä½æºååå¯åå¨ç¨ éå«
ããå¨é´æ¥å¯»åä¸ä½ååå¯åå¨ç¨ ä¸è½éå«
ããDI å¨å符串è¿ç®æ令ä¸ä½ç®æ ååå¯åå¨ç¨ éå«
ããå¨é´æ¥å¯»åä¸ä½ååå¯åå¨ç¨ ä¸è½éå«
ããBP å¨é´æ¥å¯»åä¸ä½åºåæéç¨ ä¸è½éå«
ããSP å¨å æ æä½ä¸ä½å æ æéç¨ éå«
ãã注ï¼EUä¸è®¾è®¡äºä¸ä¸ª16ä½çæ å¿å¯åå¨ï¼ç¨æ¥åæ¾ç¨åºç¶æåPSWï¼Program Status Wordï¼ãPSWä¸ä¸å
±å®ä¹äº9个ææä½ã
ããPSWçæ å¿ä½
ããOF DF IF TF SF ZF AF PF CF
ãã注ï¼æ左边ç代表PSWçæé«ä½ï¼æå³è¾¹ï¼CFï¼ç代表æä½ä½ã
ããPSWä¸æ å¿ä½çç¨æ³åå«ä¹
ããæ å¿ä½ ç¨æ³åå«ä¹
ããDF æ¹åæ§å¶ï¼Direction Flagï¼ä½
ããè¥è®¾ç½®DFï¼1ï¼å串æä½åï¼æºåç®çæä½æ°çå°åååå¢åæ¹åè°æ´ï¼è¥è®¾ç½®DFï¼0ï¼ååååæ¹åè°æ´ã
ããIF ä¸æå
许æ§å¶ï¼Interrupt Enable Flagï¼ä½
ããè¥è®¾ç½®IFï¼1ï¼åå
许CPUååºå¯å±è½ä¸æï¼å¼ä¸æï¼ï¼è¥IFï¼0ï¼åä¸å
许CPUååºå¯å±è½ä¸æï¼å
³ä¸æï¼ã
ããTF é·äºæ§å¶ï¼Trap Flagï¼ä½
ããè¥è®¾ç½®TFï¼1ï¼åå°å¨CPUè¿è¡ä¸è®¾ç½®é·äºï¼æ¤æ¶ï¼CPUæ¯æ§è¡ä¸æ¡æ令就产çä¸ä¸ªåæ¥ä¸æï¼ç¨æ·å¯ä»¥å¨ä¸ææå¡ä¸å¯¹å½åæ令çæ§è¡æ
åµè¿è¡è°è¯ï¼è¥TFï¼0ï¼è¡¨ç¤ºä¸è®¾ç½®é·äºã该æ å¿ä¸»è¦ç¨äºç¨åºçåæ¥è°è¯ã
ããOF 溢åºæ å¿ï¼Overflow Flagï¼ä½ãå®åæ æ符å·æ°çè¿ç®ç»ææ¯å¦è¶
åºå
¶æè½è¡¨ç¤ºçèå´ï¼åè¿ç®çèå´ä¸º-32768ââ+32767ï¼åèè¿ç®çèå´ä¸º-128ââ+127ãè¥OFï¼1ï¼å表示ç»æ溢åºï¼OFï¼0ï¼è¡¨ç¤ºç»ææªæº¢åºã注æï¼OFæ å¿ä¸»è¦é对æ符å·è¿ç®ã
ããSF 符å·æ å¿ï¼Sign Flagï¼ä½ãå®åæ è¿ç®ç»æçæé«ææä½ï¼MSBï¼ä¸º0ãè¿æ¯ä¸º1ï¼å¯¹æ符å·è¿ç®æ¥è¯´ï¼å®åæ äºè¿ç®ç»æ为æ£ãè¿æ¯ä¸ºè´ãè¥SFï¼1ï¼åæ è¿ç®ç»æçæé«ææä½ä¸º1ï¼æç»æ为è´ï¼ï¼è¥SFï¼0ï¼å表示æé«ææä½ä¸º0ï¼æç»æä¸ä¸ºè´ï¼ã
ããZF é¶æ å¿ï¼Zero Flagï¼ä½ãåæ è¿ç®ç»ææ¯å¦ä¸ºå
¨0ãè¥ZFï¼1ï¼å表示è¿ç®ç»æ为å
¨0ï¼åä½å为0ï¼ï¼è¥ZFï¼0ï¼è¡¨ç¤ºè¿ç®ç»æéå
¨0ï¼åä½ä¸å
¨ä¸º0ï¼ã
ããAF è¾
å©æ å¿ï¼Auxiliary Flagï¼ä½ã该æ å¿ä¸»è¦ç¨äºBCDç è¿ç®åçè°æ´ãå®åæ è¿ç®ä¸ä½åä½ååï¼å³D3åD4ï¼ææ è¿ä½ï¼é对å è¿ç®ï¼æåä½ï¼é对åè¿ç®ï¼ãè¥AFï¼1ï¼è¡¨ç¤ºæè¿ä½æåä½ï¼è¥AFï¼0ï¼è¡¨ç¤ºæ è¿ä½æåä½ã
ããPF æ ¡éªæ å¿ï¼Parity Flagï¼ä½ãåæ è¿ç®ç»æä¸1ç个æ°æ¯å¦ä¸ºå¶æ°ãè¥PFï¼1ï¼è¡¨ç¤ºè¿ç®ç»æä¸æå¶æ°ä¸ª1ï¼è¥PFï¼0ï¼è¡¨ç¤ºç»æä¸æå¥æ°ä¸ª1ã
ããCF è¿ä½æ å¿ï¼Carry Flagï¼ä½ãå®åæ è¿ç®ä¸æé«ææä½ï¼åè¿ç®æ¶ä¸ºD15ãåèè¿ç®æ¶ä¸ºD7ä½ï¼ååææ è¿ä½ï¼é对å è¿ç®ï¼æåä½ï¼é对åè¿ç®ï¼ãè¥CFï¼1ï¼è¡¨ç¤ºæè¿ä½æåä½ï¼è¥CF=0ï¼è¡¨ç¤ºæ è¿ä½æåä½ãCFæ å¿ä¸»è¦é对æ 符å·è¿ç®ã
ãã注ï¼DFã IFã TF为æ§å¶æ å¿ä½ï¼ç¨æ·å¯ä»¥éè¿æ令设置å®ä»¬ä¸º0æ1ãä»èæ§å¶CPUçç¶æãOFãSFã ZFã AFã PFãCF 为ç¶ææ å¿ä½ï¼å®ä»¬è®°å½ç¨åºçè¿è¡ç¶æï¼éè¿å¯¹å®ä»¬çå¤æå³å®ç¨åº