www./oocities.com/pontipa001

Êè§à¾¨
152 :: 162::1144 ::1500 :: 1188 :: DTAC::GSM

˹éÒáá .......... ·´Êͺ¤ÇÒÁÃÙé
¤ÍÁ¾ÔÇàµÍÃì㹪ÕÇÔµ»ÃШÓÇѹ ¤ÍÁ¾ÔÇàµÍÃìÊÓËÃѺ¼ÙéºÃÔËÒÃÁÑŵÔÁÕà´Õ ·ÕèÁҢͧ¡ÒâÂÒÂà·¤â¹âÅÂÕà¤Ã×Í¢èÒÂÇÔ·ÂØ ·ÕÇÕ º¹ÍÔ¹à·ÍÃìà¹çµ
·Ò§´èǹ¢éÍÁÙÅ ÃÒ¡°Ò¹¢Í§¡ÒÃÈÖ¡ÉÒ·Ò§ä¡ÅÊÒÃʹà·ÈÊèǹºØ¤¤Å ¤ÇÒÁ¨Óà»ç¹¢Í§¡ÒÃãªé¤ÍÁ¾ÔÇàµÍÃì Ãкº¢éÍÁÙÅ¢èÒÇÊÒâͧͧ¤ì¡Ã
àÁ×èÍ·Ò§´èǹ¢éÍÁÙÅ¢èÒÇÊÒáÓÅѧà»ç¹¨ÃÔ§¨ÐäÅèµÒÁ¨Ñºà·¤â¹âÅÂաѹÍÂèÒ§äôÕ

ʶһѵ¡ÃÃÁ¢Í§ CPU 8086

â¤Ã§ÊÃéҧʶһѵ¡ÃÃÁ¢Í§ CPU 8086 (8086 block diagram)
8086 ÁÕáÍ´à´ÃÊ 20 àÊé¹ «Öè§·ÓãËéÍéÒ§áÍ´à´ÃÊä´é¶Ö§ 1,045,576 亵ì (ËÃ×Í 1 àÁ¡Ð亵ì) ËÃ×ÍÁÒ¡à»ç¹ 16 à·èÒ ¢Í§äÁâ¤Ãâ»Ãà«Êà«ÍÃ좹Ҵ 8 ºÔµ data bus ÁÕ¢¹Ò´ 16 ºÔµ ·ÓãËé 8086 ÊÒÁÒöàÃÕ¡¢éÍÁÙÅä´é·ÕÅÐ 1àÇÔÃì´ ËÃ×Í 2 亵ìä´éáÅÐÂѧàµÃÕÂÁ¾ÃéÍÁÊÓËÃѺ¡Ò÷ӧҹẺ ãªéËÅÒ CPU áÅÐÃÇÁ·Ñé§¡Ò÷ӧҹ ÃèÇÁ ¡ÑºÍØ»¡Ã³ìÍ×è¹·Õè¨Ð·Ó§Ò¹ÃèÇÁ¡Ñ¹ 8086 ä´é´éÇÂ

ÃÙ»áÊ´§ block diagram ¢Í§ CPU 8086

Register ¢Í§ CPU 8086

ÃÕ¨ÔÊàµÍÃì¢Í§ 8086 »ÃСͺ´éÇÂÃÕ¨ÔÊàµÍÃìÊÓËÃѺ¨Ø´»ÃÐʧ¤ì·ÑèÇä», ÃÕ¨ÔÊàµÍÃì ªÕé¤ÓÊÑè§ flag áÅÐ à«¡àÁ¹µì ÃÕ¨ÔÊàµÍÃì ÃÕ¨ÔÊàµÍÃìàËÅèÒ¹Õé¹ÓÁÒãªé§Ò¹ÊÓËÃѺ¡ÒÃÍéÒ§ address áÊ´§Ê¶Ò¹Ð¢Í§à¤Ã×èͧ áÅÐÊÓËÃѺ fetch ¤ÓÊÑè§à¾×èÍÁÒµÕ¤ÇÒÁ áÅСÃзӵÒÁ
㹺ÃôÒÃÕ¨ÔÊàµÍÃì·ÕèÁÕÍÂÙè·Ñé§ËÁ´¢Í§ 8086 à»ç¹ÃÕ¨ÔÊàµÍÃ좹Ҵ 16 ºÔµ ÃÕ¨ÔÊàµÍÃì AX ¨Ð»ÃСͺ ´éÇ AH áÅÐ AL â´Â AX ·Ó˹éÒ·Õè㹡ÒÃãªé¤Ù³ËÒÃËÃ×Íà»ç¹ÃÕ¨ÔÊàµÍÃì à¡ÕèÂǡѺÍÔ¹¾ØµàÍÒµì¾Øµ ·Õèà»ç¹àÇÔÃì´ AL ·Ó ˹éÒ·Õèã¢é㹡Òäӹdz ¤Ù³ËÒà ËÃ×Í·Ó§Ò¹à¡ÕèÂǡѺÍÔ¹¾Øµ àÍÒµì¾Ø· á»Å§ ¢éÍÁÙŨѴ¡ÒäӹdzẺµÑÇàÅ¢ °Ò¹ÊԺẺ 8 ºÔµ Êèǹ AH ãªéà»ç¹ÃÕ¨ÔÊàµÍÃì㹡ÒäٳáÅÐ ËÒÃä´é BX ãªé㹡ÒÃá»Å§¢éÍÁÙÅ CX ãªé㹤ÓÊÑè§ ¨Ñ´¡ÒÃà¡ÕèÂǡѺʵÃÔ§ áÅСÒÃÅÙ» CL ãªéà»ç¹µÑÇá»ÃÊÓËÃѺ¡ÒÃàÅ×è͹ºÔµËÃ×ÍËÁعºÔµ DX ãªé㹤ÓÊÑ觤ٳ ËÒÃà»ç¹àÇÔÃì´ËÃ×Íãªéã¹ÃٻẺÍéÒ§ÍÔ¹¾ØµàÍÒµì¾ØµáººÍéÍÁ SP ãªé¡Ñº¤ÓÊÑè§Êᵡ SI áÅÐ DI ãªé¡Ñº¤ÓÊÑè§·Õèà¡ÕèÂǡѺʵÃÔ§

ÃÙ»áÊ´§ÃÕ¨ÔÊàµÍÃì·Õèãªéã¹äÁâ¤Ãâ»Ãà«Êà«ÍÃì 8086

ÃÕ¨ÔÊàµÍÃìãªé§Ò¹·ÑèÇ仢ͧ 8086

ÃÕ¨ÔÊàµÍÃìã¹ 8086 »ÃСͺ´éÇ ÃÕ¨ÔÊàµÍÃìµé¹·Ò§ËÃ×Í source áÅÐ ÃÕ¨ÔÊàµÍÃì »ÅÒ·ҧËÃ×Í destination BX(base) , SP (stack pointer), BP (base pointer), SI (source index) áÅÐ DI (destination index) «Öè§ÊÒÁÒö·Õè¨Ð¹ÓÁÒà»ç¹µÑÇÍéÒ§ address ä´é ´Ñ§ÃÙ»

ÃÙ»áÊ´§â¤Ã§ÊÃéÒ§ÃÕ¨ÔÊàµÍÃì¢Í§ 8086 ¡Ñº¡ÒäӹdzáÍ´à´ÃÊ

ÃÕ¨ÔÊàµÍÃ좹Ҵ 16 ºÔµ À µÑÇ«Öè§ä´éá¡è AX (accumulator) , BX (base) , CX (counter) áÅÐ DX (data) Âѧ¶Ù¡áºè§ÍÍ¡à»ç¹¤ÃÖ觺¹ (AH, BH, CH áÅÐDH) áÅФÃÖè§ÅèÒ§ (AL, BL, CL áÅÐ DL) ÃÕ¨ÔÊàµÍÃìàËÅèÒ¹ÕéÍÒ¨¨Ð·Ó§Ò¹ã¹ÅѡɳР à»ç¹àÇÔÃì´ËÃ×Í亵ì¡çä´é ã¹¡ÅØèÁ¹Õé¶×ÍÇèÒà»ç¹ÃÕ¨ÔÊàµÍÃì ¢éÍÁÙÅ ÃÕ¨ÔÊàµÍÃìã¹¡ÅØèÁ pointer áÅÐ index ÁÑ¡¨Ð¹Ó ä»ãªé㹡ÒÃÍéÒ§ address áÅÐÂѧãªé㹡ÒáÃÐ·Ó ·Ò§¤³Ôµ ÈÒʵÃìáÅÐÅͨԡä´é
ÃÕ¨ÔÊàµÍÃì BP áÅÐ SP ÁÑ¡¨Ðãªé㹡ÒêÕéÊᵡ à¾×èͨзӡÒÃà¡çºµÓáË¹è§ address ¡ÅѺ¨Ò¡ â»Ãá¡ÃÁÂèÍ â´ÂãªéËÅÑ¡¡ÒÃàËÁ×͹Êᵡ¢Í§ CPU 8 ºÔµ Êèǹ BP ¹Ñ鹨ÐãªéÊÓËÃѺà»ç¹ µÑǺǡ à¾×èͪÕé¤èÒÊᵡÍÕ¡·Õ˹Öè§ à¾×èͨÐà»ç¹ÇÔ¸Õ·Õè¨ÐÍӹǤÇÒÁÊдǡ㹡ÒÃÊ觤èÒ ¾ÒÃÒÁÔàµÍÃìà¢éÒÊÙèâ»Ãá¡ÃÁâ´Â¼èÒ¹·Ò§ Êᵡ «Ö觪èÇÂã¹ ¡ÒÃÊ觤èҢͧµÑÇá»ÃÃÐËÇèÒ§â»Ãá¡Ãä´é´Õ ÃÕ¨ÔÊàµÍÃì SI áÅÐDI ¨Ð·Ó¡ÒõԴµè͡Ѻ˹èǤÇÒÁ¨Óä´é «Ö觨Ðãªé§Ò¹ä´é´Õã¹¡ÅØèÁ¤ÓÊÑ觾ǡ ʵÃÔ§áÅСÒà ·Ó§Ò¹à»ç¹ block ËÃ×Í ¡ÒÃàª×èÍÁâ§¢éÍÁÙÅã¹â¤Ã§ÊÃéҧẺ array
㹡Òà fetch ¤ÓÊÑ觢ͧ 8086 ¨Ðãªé IP (instruction pointer) ¢¹Ò´ 16 ºÔµ à»ç¹µÑǪÕéµÓáË¹è§ address ¢Í§ ¤ÓÊÑè§¶Ñ´ä»·Õè¨Ð¶Ù¡·Ó§Ò¹ «Ö觤ÇÒÁ¨ÃÔ§áÅéǤèÒã¹ IP äÁèä´é¡Ó˹´µÓá˹è§â´ÂµÃ§ áµè¨Ð ÁÕ¡ÒäӹdzÁÒ¡è͹
8086 à»ç¹ flag ʶҹШӹǹ 6 ºÔµ áÅÐ flag ¤Çº¤ØÁ¨Ó¹Ç¹ 3 ºÔµ«Ö觺ÃèØÍÂÙèã¹ÃÕ¨ÔÊàµÍÃ좹Ҵ 16 ºÔµ


ÃÙ»áÊ´§ flag ¢Í§ 8086 ·Õèãªé㹡Ò÷´Êͺ¡Ò÷ӧҹ¢Í§ CPU

flag ä´é¶Ù¡Í͡ẺÁÒà¾×èÍáÊ´§¼Å¢Í§¡ÒáÃзӷҧ¤³ÔµÈÒʵÃìáÅÐÅͨԡʶҹзÕèà»ç¹ ä»ä´é¢Í§ flag ¨ÐÁÕÊͧʶҹР¤×Í ¶Ù¡ ૵·ÓãËéÁÕ¤èÒà»ç¹ 1ËÃ×Ͷ١ÃÕ૵ãËéÁÕ¤èÒà»ç¹ 0 á¿Å硵ÑÇ·´ (carry flag) ¨ÐáÊ´§ Åѡɳк͡¡Ò÷´ËÃ×Í ¡ÒâÍÂ×Á¢Í§ºÔµÊÙ§ÊØ´¢Í§¼ÅÅѾ¸ì , á¿Å硾ÒÃÔµÕé (parity flag) ¨ÐãªéáÊ´§¨Ó¹Ç¹¤ÙèËÃ×ͤÕè¢Í§µÑÇàÅ¢·Õèà»ç¹ 1 ã¹ÃÕ¨ÔÊàµÍÃì ¶éÒà»ç¹¤Ùè flag ¹Õé¨Ð¶Ù¡à«µà»ç¹ 1, á¿Åç¡·´ªèÇ (auxiliary carry flag) ¨Ðãªé§Ò¹áºº "decimal adjust", á¿Åç¡ÈÙ¹Âì (zero flag) ¨Ðà»ç¹ 1 àÁ×èͼÅÅѾ¸ìà»ç¹ÈÙ¹Âì , á¿Åç¡ à¤Ã×èͧËÁÒ (sign flag) ¨Ðä´éÃѺ ¡ÒÃ૵àÁ×èͼÅÅѾ¸ìà»ç¹àŢź , âÍàÇÍÃìâ¿ÅÇìá¿Åç¡ (OF) ãªéà¾×èÍáÊ´§ÇèÒÁÕ¤ÇÒÁ¼Ô´¾ÅÒ´ 㹡Òäӹdz à¹×èͧ¨Ò¡¡ÒÃãÊèà¤Ã×èͧËÁÒ¢ͧ¼ÅÅѾ¸ì àªè¹  ¶éÒÁÕ¡ÒúǡàÅ¢ +127 ¡Ñº +2 ¼ÅÅѾ¸ì·Õèä´é¶éÒ¤Ô´¤Ó¹Ç³áººÁÕà¤Ã×èͧËÁÒ¨Ðä´é¤ÓµÍºà»ç¹ -127 «Öè§¼Ô´¤ÇÒÁËÁÒ ÅÑ¡¡É³Ð ¹Õé¨Ðà¡Ô´¡Òà âÍàÇÍÃìâ¿ÅÇìãËéá¿Åç¡ à»ç¹ 1
á¿Å硤Ǻ¤ØÁ·ÔÈ·Ò§¢Í§ 8086 (direction flag)¨Ð¡Ó˹´·ÔÈ·Ò§¢Í§¡ÅØèÁ¤ÓÊÑè§à¡ÕèÂǡѺʵÃÔ§ ÇèÒ¨ÐÁÕ·ÔÈ·Ò§ ¡Ò÷ӧҹ¨Ò¡áÍ´à´ÃÊÁҡ仹éÍ ËÃ×ͨҡáÍ´à´ÃʹéÍÂä»ÁÒ¡¹Ñè¹àͧ , á¿Åç¡ÍÔ¹àµÍÃìÃѾ·ì (IE) ¶éÒä´é ÃѺ¡ÒÃ૵à»ç¹ 1

áÊ´§ÇèÒ¨ÐÂÍÁÃѺÍÔ¹àµÍÃìÃѾ·ì¨Ò¡ÀÒ¹͡ áÅÐ Tap flag (TF) ¨Ð·ÓãËé 8086 ·Ó§Ò¹ Ẻ·ÕÅФÓÊÑè§à¾×èÍ¡ÒÃá¡éä¢â»Ãá¡ÃÁ

à«¡àÁ¹µìÃÕ¨ÔÊàµÍÃì

ÁÕ 4 µÑÇ ¤×Í CS(code segment) , DS(data segment) , SS(stack segment), ES(extra segment) «Öè§ ¨Ð¹ÓÁÒãªéã¹ËÅÑ¡¡ÒÃẺºÅçÍ¡áÍ´à´Ãʢͧ 8086 ˹èÇ ¤ÇÒÁ¨Óä´éÃѺ¡ÒèѴÊÃÃà»ç¹ÊèǹãË­è æ ¤×Í code (ËÃ×ͪش¤ÓÊÑè§) ,¢éÍÁÙÅ (µÑÇàÅ¢ ËÃ×͵ÑÇÍÑ¡ÉÃ) áÅÐÊᵡÊÓËÃѺ¡ÒÃà¡çº¤èÒáÍ´à´ÃÊ¡ÅѺ¤×¹¨Ò¡â»Ãá¡ÃÁÂèÍÂà¾×èÍ·Õè¨Ð »éͧ¡Ñ¹¡ÒÃÊѺʹ ¨Ö§¡Ó˹´¤èÒãËé ᡡѹä´é
8086 ¨ÐÁͧÅѡɳТͧ˹èǤÇÒÁ¨Ó â´Âáºè§Ë¹èǤÇÒÁ¨Óà»ç¹¡ÅØèÁ æ ã¹ÃٻẺ¢Í§ à«¡àÁ¹µì ã¹Ë¹Öè§ à«¡àÁ¹µì¨ÐªÕéä´é¶Ö§ 64 ¡ÔâÅ亵ì à«¡àÁ¹µì·Ñé§ÊÕèµÑÇ ¨ÐáÊ´§áÍ´à´ÃÊàÃÔèÁ µé¹¢Í§Ë¹èǤÇÒÁ¨Ó·Õè¨ÐµÔ´µèÍ´éÇ ´Ñ§ÃÙ» CS ¨ÐºÃèؤèÒáÊ´§áÍ´à´ÃÊàÃÔèÁµé¹¢Í§â»Ãá¡ÃÁ DS ¨Ðà¡çº¤èÒ data segment ¢³Ð¹Ñé¹ SS ¨Ð à¡çº¤èÒÊᵡૡàÁ¹µì ¢³Ð¹Ñé¹áÅÐ ES ¨Ð¡Ó˹´ segment ¢Í§¢éÍÁÙÅÃÇÁ·ÕèàÃÕ¡ÇèÒ global data segment

à«¡àÁ¹µì¨ÐáÊ´§µÓá¹è§àËÁ×͹¡Ñº paragraph â´Â¨ÐàÅ×è͹价ҧ«éÒ 4 ºÔµ à¾×èÍ·Õè¨Ð¡Ó˹´ ËÃ×ÍÍéÒ§ áÍ´à´ÃÊãËé¤Ãº 20 àÊé¹ â´Â¨Ø´àÃÔèÁµé¹¢Í§ paragraph ¨ÐµéͧÁÕ 4 ºÔµ ËÅÑ§ÊØ´à»ç¹ 0 àªè¹ à»ç¹ 00000H, 00010H , 00020H à»ç¹µé¹
¨Ò¡ÃÙ» ¤èҢͧ SS ¨ÐªÕéµÓá˹觢ͧૡàÁ¹µì¤èÒ D89F0 ÊѧࡵàËç¹ÇèÒÊèǹ¾×é¹·Õè ¢Í§Ë¹èÇ ¤ÇÒÁ¨ÓÍÒ¨¨Ð ÊÅѺËÃ×ÍãªéºÃÔàdzà´ÕÂǡѹ¢Í§Ë¹èǤÇÒÁ¨Óä´é

à¾×èÍ·Õè¨Ð·Ó¡ÒõԴµè͡Ѻ¢éÍÁÙÅ˹Öè§äºµìËÃ×Í˹Öè§àÇÔÃì´¹Ñé¹ 8086 ä´éàµÃÕÂÁ¤èÒÍͿ૵ à¾×èÍãªéÍéÒ§ µÓ˹觵Ñé§áµè ¨Ø´àÃÔèÁµé¹¢Í§à«¡àÁ¹µìáÍ´à´ÃÊ µÓá˹è§ã´ æ ¨Ðä´éÁÒ¨Ò¡¡Òúǡ¤èÒ à«¡àÁ¹µì ÃÕ¨ÔÊàµÍÃì¡Ñº¤èҢͧÍͿ૵ 16 ºÔµ

àªè¹¶éÒà«¡àÁ¹µìÁÕ¤èÒ E89F ¨ÐãËéÍͿ૵ÁÕ¤èÒ 0003H ¨Ð·ÓãËé¡ÒÃÍéÒ§áÍ´à´ÃÊä»·Õè 89F3
¡ÒèÐãªéà«¡àÁ¹µÚÃÕ¨ÔÊàµÍÃìáÅФèÒÍͿ૵µÑÇã´¹Ñ鹨ТÖé¹ÍÂÙè¡Ñºª¹Ô´¢Í§¤ÓÊÑè§´éÇ ´Ñ§áÊ´§ã¹µÒÃÒ§
      ª¹Ô´¢Í§¡ÒÃÍéҧ˹èǤÇÒÁ¨Ó
      ¤èÒà«¡àÁ¹µìâ´Â»¡µÔ
      ¤èÒà«¡àÁ¹µì·ÕèàÅ×Í¡ä´é
      ¤èÒÍͿ૵ 
      ¡ÒÃ࿵ªì¤ÓÊÑè§
      CS
      -
      IP
      ¡Ò÷ÓÊᵡ
      SS
      -
      SP
      ¡Ó˹´µÑÇá»Ã
      DS
      CS,ES,SS
      ¤èÒáÍ´à´ÃÊ·Õè¡Ó˹´
      ʵÔçµé¹·Ò§
      DS
      CS,ES,SS
      SI
      ʵÃÔ§»ÅÒ·ҧ
      ES
      -
      DI
      àºÊÃÕ¨ÔÊàµÍÃì BP
      SS
      CS,ES,SS
      ¤èÒáÍ´à´ÃÊ·Õè¡Ó˹´

¡ÒèѴ¢Ò¢Í§ 8086

8086 à»ç¹äÁâ¤Ãâ»Ãà«Êà«ÍÃì·ÕèÁÕ¢Òà¾Õ§ 40 ¢Òà·èÒ¹Ñé¹ â´Âáºè§à»ç¹¢ÒáÍ´à´ÃÊ·Õè multiplex ÃèÇÁ¡Ñº¢Ò¢éÍÁÙÅ 16 ¢Ò ¤×Í AD0 - AD15áÅÐÂѧÁÕáÍ´à´ÃÊà¾ÔèÁ¢Öé¹ÁÒ ÍÕ¡ 4 ¢Ò ¤×Í A16 - A19 «Öè§ multiplex ¡Ñº S3 - S6 ¹Í¡¨Ò¡¹Õé¨Ðà»ç¹¢Ò ·Õèà»ç¹ ÊÑ­­Ò³¤Çº¤ØÁÍ×è¹ æ ¡ÒèѴ¢Ò·Ñé§ËÁ´ áÊ´§´Ñ§ÃÙ»

à¹×èͧ¨Ò¡ 8086 ÁÕ ºÑÊ¢¹Ò´ 16 ºÔµ áµèÂѧ¤§µÔ´µè͡Ѻ¢éÍÁÙÅã¹ÅѡɳÐà»ç¹äºµì ´Ñ§¹Ñé¹ã¹¢éÍÁÙÅ 16 ºÔµ ¨Ö§áºè§à»ç¹äºµìÊÙ§áÅÐ亵ìµèÓ â¤Ã§ÊÃéÒ§¡ÒÃàª×èÍÁµè͡Ѻ˹èǤÇÒÁ¨Ó¨Ö§á¡´éÇ /BHE ËÃ×ÍÊÑ­­Ò³àÅ×͡亵ìÊÙ§
        ¢Ò
        ˹éÒ·Õè
        ª¹Ô´
        AD0 - AD15< ºÑÊáÍ´à´ÃÊáÅТéÍÁÙÅ 2 ·ÔȷҧẺÅͨԡÊÒÁʶҹÐ
        A16/S3 - A17/S4 áÍ´à´ÃÊ/µÑǺ͡ૡàÁ¹µì àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        A18/S5 áÍ´à´ÃÊ/µÑÇÍÔ¹àµÍÃìÃѾ·ìÍÕ¹ÒàºÔÅ àÍÒµì¾Ø·áººÅͨԡÊÒÁʶҹÐ
        A19/S6 áÍ´à´ÃÊ/ºÔµáÊ´§Ê¶Ò¹Ð àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        /BHE/S7 ºÔµºÍ¡¢éÍÁÙÅ亵캹/ºÔµáÊ´§Ê¶Ò¹Ð àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        RD ºÔµ¤Çº¤ØÁ¡ÒÃÍèÒ¹ àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        READY ºÔµ¤Çº¤ØÁ¨Ñ§ËÇСÒà Wait ÍÔ¹¾Øµ
        /TEST ºÔµºÍ¡¡ÒÃÃͤÍÂÊÓËÃѺ¡Ò÷´Êͺ ÍÔ¹¾Øµ
        INTR ÍÔ¹àµÍÃìÃѾ·ì ÍÔ¹¾Øµ
        NMI ¹Í¹ÁÒÊà¤àºÔÅÍÔ¹àµÍÃìÃѾ·ì ÍÔ¹¾Øµ
        RESET ÃÕ૵ ÍÔ¹¾Øµ
        CLK ÊÑ­­Ò³¹ÒÌÔ¡Ò ÍÔ¹¾Øµ
        MN/MX ¶éÒà»ç¹ 0 ËÁÒ¶֧Ãкºà»ç¹ª¹Ô´ 

        maximum system

        S0S1S2 ºÍ¡Ê¶Ò¹Ð machine cycle àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        /RQ/GTO,/RQ/GTI ºÔµ¤Çº¤ØÁÅӴѺÊӤѭ¢Í§ºÑÊ Êͧ·ÔÈ·Ò§
        GSO,QSI ºÔµáÊ´§¤ÔǢͧ¤ÓÊÑè§ àÍÒµì¾Øµ
        /LOCK ºÑʤǺ¤ØÁ hold àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        M/IO àÅ×͡˹èǤÇÒÁ¨ÓËÃ×ÍÍÔ¹¾ØµàÍÒµì¾Øµ àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        /WR à¢Õ¹ àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        /ALE áÅ·ªìáÍ´à´ÃÊ àÍÒµì¾Øµ
        DT/R ÃѺÊè§¢éÍÁÙÅ àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        /DEN ¡ÒÃÍÕ¹ÒàºÔéÅ¢éÍÁÙÅ àÍÒµì¾ØµáººÅͨԡÊÒÁʶҹÐ
        /INTA  µÍºÃѺÍÔ¹àµÍÃìÃѾ·ì àÍÒµì¾Øµ
        HOLD ºÍ¡¡Òà hold ÍÔ¹¾Øµ
        HOLDA µÍºÃѺ¡Òà hold àÍÒµì¾Øµ
        Vcc GND áËÅ觨èÒÂä¿ ground

ÍÔ¹àµÍÃìÃѾ·ì¢Í§ 8086

ÍÔ¹àµÍÃìÃѾ·ì¢Í§ 8086 ÊÒÁÒö¨ÐÁ¨Ò¡ËÅÒ æ áËÅè§ä´éÍÔ¹àµÍÃìÃѾ·ìÍÒ¨¨Ð ÁÒ¨Ò¡ ÍØ»¡Ã³ì ÀÒ¹͡ ÁÒâ´Â·Ò§ software ËÃ×ÍÁÒ¨Ò¡µÑÇ 8086 àͧ¡çä´é ÍÔ¹àµÍÃìÃѾ·ì¨Ò¡ÍØ»¡Ã³ìÀÒ¹͡ à¢éÒÁÒ·Ò§¢Ò 2 ¢Ò ¤×Í INTR(interrupt

request) áÅÐ NMI(non-maskable interrupt) â´Â·Õè INTR ¨Ð¶Ù¡¡Ó˹´ãËé·Ó§Ò¹ä´éâ´Â¤ÓÊÑè§ IE(interrupt enable flag) ·Õèà»ç¹Êèǹ˹Ö觢ͧ 8086 flag ¶éÒ flag IE ¶Ù¡à«µ¨Ð ·ÓãËé 8086 ÊÒÁÒö¨ÐÃѺÍÔ¹àµÍÃìÃѾ·ì¨Ò¡ INTR ä´é áµè¶éÒ
IF ¶Ù¡à¤ÅÕÂÃì 8086 ¨Ð äÁèÃѺÍÔ¹àµÍÃìÃѾ·ì¨Ò¡ INTR Êèǹ NMI ¨Ðà»ç¹ÍÔ¹àµÍÃìÃѾ·ì·ÕèäÁèÊÒÁÒö¨ÐËÂØ´ä´é ÁÑ¡¨Ð ãªé㹡óշÕèà¡Ô´à˵ءÒóìÊӤѭàªè¹à¡Ô´¤ÇÒÁ¼Ô´¾ÅÒ´¢Í§¾ÒÃÔµÕé¢Í§ ˹èǤÇÒÁ¨Ó (memory parity) ËÃ×Íà¡Ô´ä¿µ¡ à»ç¹µé¹
INTO (interrupt overflow) ¤×Í ÍÔ¹àµÍÃìÃѾ·ì¢Í§ 8086 ·Õèà¡Ô´¨Ò¡¢éͼԴ¾ÅÒ´¢Í§¡ÒÃËÒÃáÅÐ ¡Ò÷ӧҹ·ÕÅТÑé¹ ¢éͼԴ¾ÅÒ´¨Ò¡¡ÒÃËÒà (divide error) à¡Ô´¢Öé¹à¹×èͧ¨Ò¡¼Å¢Í§¡ÒÃËÒÃÍÒ¨¨ÐÁÕ¤èÒÁÒ¡¡ÇèÒà¹×éÍ·Õè·ÕèàµÃÕÂÁäÇéà»ç¹·Õèà¡çº

¼ÅÅѾ¸ì ËÃ×ÍÍÒ¨¨Ðà¡Ô´¨Ò¡¡ÒÃËÒôéÇÂàÅ¢ 0 ËÃ×ÍÍÒ¨¨Ðà¡Ô´¡ÒÃËÒôéÇÂàÅ¢ 1 ËÃ×Í´éÇ àÅ¢ÁÒ¡ æ ÊèǹÅѡɳТͧ¡Ò÷ӧҹ·ÕÅТÑé¹ (single step) ¨Ðà»ç¹ÍÔ¹àµÍÃìÃѾ·ì ·Õèà¡Ô´à¹×èͧ¨Ò¡ execute ¤ÓÊÑè§·ÕÅФÓÊÑè§à˵ءÒóì¹Õéà¡Ô´¢Öé¹à¹×èͧ¨Ò¡ TF (trap flag) ã¹ÃÕ¨ÔÊàµÍÃìá¿Å硶١૵ãËéà»ç¹ 1
àÁ×èÍà¡Ô´ÍÔ¹àµÍÃìÃѾ·ìàËÅèÒ¹Õé¢Öé¹ÁÒáÅéÇ¡ç¨Ðà¡Ô´à˵ءÒóì੾ÒÐÍÂèÒ§¢Öé¹¶éÒÁÕ¡ÒÃÍÔ¹àµÍÃìÃѾ·ì ¨Ò¡ÀÒ¹͡ ¤ÓÊÑè§ªØ´ÊØ´·éÒ¨ж١ execute ¨¹àÊÃç¨ÊÔ鹡è͹ (¡àÇé¹ ¶éÒà»ç¹¤ÓÊÑè§ MOV ËÃ×Í POP ¨ÐÁÕ¡Òà execute ¤ÓÊÑè§µèÍ仡è͹

áÅéǨ֧ËÂØ´) ÍÔ¹àµÍÃìÃѾ·ì·Ø¡µÑǨзӡÒà à¡çº¤èÒ ¢Í§á¿Åç¡ÃÕ¨ÔÊàµÍÃìäÇéã¹Êᵡ àÊÃç¨áÅéÇ 8086 ¨Ð·Ó¡ÒÃÃÕ૵á¿Åç¡ IF áÅÐ TF ãËéà»ç¹ 0 ·Ñé§¹Õéà¾×èÍ»éͧ¡Ñ¹ INTR ÍÔ¹¾Øµ·Õèà¢éÒÁÒãËÁè áÅлéͧ¡Ñ¹¡ÒÃà¡Ô´¡Ò÷ӧҹ·ÕÅТÑé¹ã¹¢³Ð·ÕèÍÂÙèã¹
â»Ãá¡ÃÁÍÔ¹àµÍÃìÃѾ·ì à¹×èͧ¨Ò¡¡Ò÷Õèá¿Åç¡¶Ù¡à¡çº¤èÒäÇéËÅѧ¨Ò¡â»Ãá¡ÃÁÍÔ¹àµÍÃìÃѾ·ì ÊÔé¹ÊØ´áÅéǤèÒµèÒ§ æ ·Õèà¡çºäÇé¨Ð¶Ù¡´Ö§¡ÅѺÁÒãªé§Ò¹ä´é ¨Ò¡¹Ñé¹ 8086 ¨Ð·Ó¡ÒÃà¡çº¤èҢͧ CS áÅÐ IP ŧº¹Êᵡà¾×èÍ·Õè¨Ðà¡çºµÓá˹è§
¢Í§áÍ´à´ÃÊ·ÕèÊè§¡ÅѺ (return address) ã¹ÅѡɳÐà´ÕÂÇ ¡Ñº¤ÓÊÑè§ far CALL áÅÐã¹¢Ñé¹µÍ¹ÊØ´·éÒ CS áÅÐ IP ¨Ð¶Ù¡ÍèÒ¹¨Ò¡ µÒÃÒ§¢Í§ interrupt vector (¢Ö鹡ѺËÁÒÂàÅ¢ÍÔ¹àµÍÃìÃѾ·ì) µÒÃÒ§¢Í§ interrupt vector ¡ç¤×ͺÃÔÇೢͧ
à¹×éÍ·Õè¢Í§Ë¹èÇ ¤ÇÒÁ¨ÓàÃÔèÁµÑé§áµèáÍ´à´ÃÊ 0000 ¨Ó¹Ç¹ ˹Öè§¡ÔâÅ亵ì´Ñ§áÊ´§ã¹ÃÙ»

ÍÔ¹àµÍÃìÃѾ·ìáµèÅеÑǨЪÕéä»ÂѧµÓá˹觷Õèá¹è¹Í¹ áÅÐÊÒÁÒö·Õè¨Ð¡ÃÐâ´´ ä»¶Ö§·Õè¡Ó˹´ ä´éâ´ÂÍѵâ¹ÁÑµÔ àÁ×èÍà¡Ô´ÍÔ¹àµÍÃìÃѾ·ì¨Ò¡ÅѡɳТͧ divide error ¨Ð·ÓãËé à¡Ô´ÍÔ¹àµÍÃìÃѾ·ì 0, single-step ¨Ðà»ç¹ÍÔ¹àµÍÃìÃѾ·ì 1,

ÍÔ¹àµÍÃìÃѾ·ìẺ non- maskable à»ç¹áººÍÔ¹àµÍÃìÃѾ·ì 2 , bread-oint ¨Ðà¡Ô´ÍÔ¹àµÍÃìÃѾ·ì 3 , áÅСÒà à¡Ô´ over flow ¨Ðà»ç¹ÍÔ¹àµÍÃìÃѾ·ì 4 Êèǹ ÍÔ¹àµÍÃì ÃѾ·ì 5 ¶Ö§ 31 àµÃÕÂÁäÇéÊÓËÃѺ ¼Ùéãªé¨Ð¡Ó˹´àÍÒàͧÀÒÂËÅѧ ÊèǹÍÔ¹àµÍÃìÃѾ·ì·ÕèàËÅ×ÍàÃÒÍÒ¨ ¨Ð¤Çº¤ØÁâ´Âãªé ¤ÓÊÑè§ INTR ËÃ×Í INT ä´é
ÊÓËÃѺ INTR ¨ÐµÍºÃѺÊÑ­­Ò³ÍÔ¹àµÍÃìÃѾ·ì¨Ò¡ÀÒ¹͡ áµèÊèǹ INT ¨ÐÃѺä´éâ´ÂµÑǤÓÊÑè§ ¹Ñè¹àͧ 8086 ÊÒÁÒö·Õè¨ÐÃѺÃÙ骹Դ¢Í§¡ÒÃÍÔ¹àµÍÃìÃѾ·ìä´éâ´Â¡Òà ¤Ù³´éÇ 4 ·Õè¤èҢͧ¤ÓÊÑè§ ¼ÅÅѾ¸ì·Õèä´é¨ÐºÍ¡µÓá˹觷Õè¢Í§µÒÃÒ§

ÍÔ¹àµÍÃìÃѾ·ì «Ö觤èҢͧµÒÃÒ§¨Ð¶Ù¡Ê觤èÒä»Âѧ CS áÅÐ IP ¤èÒµèÒ§ æã¹µÒÃÒ§ àÃҨеéͧà»ç¹¼Ùé ¡Ó˹´â´Â¡Ó˹´à»ç¹¤èҢͧૡàÁ¹µìáÅФèҢͧÍÍ¿ ૵ ·ÕèáÊ´§µÓá˹觢ͧ ÍÔ¹àµÍÃìÃѾ·ìÃÙ·Õ¹ ¡µÑÇÍÂèÒ§àªè¹ ÍÔ¹àµÍÃìÃѾ·ì·ÕèáÍ´à´ÃÊ 0 ¶Ö§ 3 àÃҨеéͧ¡Ó ˹´à»ç¹¤èҺ͡áÍ´à´ÃÊ CS áÅÐ IP à¾×èͨЪÕéÃÙ·Õ¹¢Í§ divide error à»ç¹µé¹
ÍÔ¹àµÍÃìÃѾ·ìÃÙ·Õ¹ ¨ÐµéͧàÃÔèÁµé¹´éÇ¡ÒÃà¡çº¤èҢͧÃÕ¨ÔÊàµÍÃìµèÒ§ æäÇé¡è͹ à¾ÃÒÐ àÃÒäÁè·ÃÒºÇèÒ ¨Ðà¡Ô´ÍÔ¹àµÍÃìÃѾ·ìàÁ×èͶ֧¨Ø´ã´ áÅÐàÃÒäÁèµéͧ¡Ò÷ÓãËé¤èÒ ÃÕ¨ÔÊàµÍÃì µèÒ§ æ àÊÕÂä»áÅÐàÃÒµéͧ »Ô´·éÒÂÃÙ·Õ¹´éǤÓÊÑè§ IRET ¤ÓÊÑè§¹Õé¨Ð·Ó§Ò¹àËÁ×͹ ¤ÓÊÑè§ RET ¸ÃÃÁ´Òáµè¨Ð·Ó¡ÒÃÍèÒ¹¤èҢͧá¿Åç¡ÍÍ¡ÁÒ ¨Ò¡Êᵡ´éÇÂ
¤ÓÊÑè§ INT ÊÒÁÒöµÃǨÊͺÇèÒ¨Ðä»·ÕèµÓá˹è§ã´ä´éâ´Âµéͧ¡Ó˹´´éÇÂËÁÒÂàÅ¢ áÊ´§ÍÔ¹ àµÍÃìÃѾ·ì ·ÓãËé¡ÒÃàÃÕ¡ãªé§Ò¹à»ç¹ä»ä´éâ´Â§èÒÂáÅÐÊдǡ
¤ÓÊÑè§ INTO à»ç¹ÍÔ¹àµÍÃìÃѾ·ì·ÕèµÃǨÊͺà§×è͹ä¢á¿Åç¡ over flow ¹Ñ蹤×ͨÐà¡Ô´¡ÒÃÍÔ¹àµÍÃìÃѾ·ì ËÁÒÂàÅ¢ 4 àÁ×èÍá¿Åç¡ OF à»ç¹ 1 áµè¶éÒá¿Å硹Õéà»ç¹ 0 ¨ÐäÁèÁÕ ÍÔ¹àµÍÃìÃѾ·ìáµè¨Ð execute ¤ÓÊÑè§ ¶Ñ´ä»
ÁÕ¤ÓÊÑè§¾ÔàÈÉ 2 ¤ÓÊÑè§·ÕèªèÇÂ㹡ÒõÃǨÊͺâ»Ãá¡ÃÁ ¹Ñ蹤×Í ¤ÓÊÑè§ INT 3 àÃҨзӡÒÃá·¹ ¤ÓÊÑè§¹Õéä»ÂѧµÓá˹觤ÓÊÑè§·ÕèºÍ¡¨Ø´ËÂØ´ àÁ×èÍÁÕ¡Òà execute ÁÒ¶Ö§¤ÓÊÑ觴ѧ¡ÅèÒÇÍÔ¹àµÍÃìÃѾ·ì ÃÙ·Õ¹ÍÒ¨¨Ð·Ó¡ÒÃà¡çº¤èÒÃÕ¨ÔÊàµÍÃìµèÒ§ æ ŧã¹ÊᵡËÃ×ÍäÇéã¹µÓá˹è§Ë¹èǤÇÒÁ¨Ó·Õè ¡Ó˹´ä´é
ÍÕ¡ÇÔ¸Õ˹Öè§ã¹¡ÒõÃǨÊͺ (debug) â»Ãá¡ÃÁ ÍÒ¨·Óä´éâ´Â¡ÒÃ૵á¿Åç¡á·Ãç» (trap flag) äÇé àÁ×èÍá¿Åç¡á·Ãç»à»ç¹ 1 áÅéÇ 8086 ¨Ð¨Ñ´¡Ò÷ÓãËéà¡Ô´ INT 1 (single-setp) ¢Öé¹µèÍ·Ø¡¤ÓÊÑè§Â¡àÇé¹ ¤ÓÊÑè§ MOV ËÃ×Í POP ·ÕèµÔ´µè͡ѺÃÕ¨ÔÊàµÍÃì à«¡àÁ¹µì


˹éÒáá