¦
¦p¦P¶i¤J«OÅ@¼Ò¦¡¡AÂ÷¶}«OÅ@¼Ò¦¡¦b'386©M'286
ªº¾÷¾¹¤W¤]¤£¤@¼Ë¡C'386¥un²M°£¦bCPU±±
¨î¾¹¼È¦s¾¹CR0
¸Ìªº¤@Óbit¡A¦ý¬O'286¥²¶·«³]CPU¡C«³]CPU»Ýn¥I¥X¤@ÂI¥N»ù¡A·í¥¦«³]CPU
¥H¤Î±N±±¨îÅvÁÙ¦^¨Ï¥ÎªÌµ{¦¡¡A·|¸g¹L¤W¦Ê(¦pªG¨S¦³¤W¤d)Ó´`Àô¶g´Á¡C
IBMì¨Ó¨Ï¥Îªº¤è¦¡¡A¬O¥ÎÁä½L±±¨î¾¹----±NCPU«³]½u(RESET
line)»P¥t¤@Ó¿é¥Xpin³s±µ¡C
Âǵ۵o¥X¾A·íªº©R¥O¡AKBC·|±µÄ²
(toggle) CPUªº RESET line¡C³oºØ¤è¦¡¥i¦æ¡A¦ý¬O«D±`ªººC¡C³\
¦h·s¥@¥Nªº '286´¹¤ù¦³¤@Ó¡§§Ö³t«³](fast
reset)¡¨ªº¯S¼x¡C³o¨Ç´¹¤ùÂǵۼg¤J¤@Ó
I/O°ð¨Ótoggle
«³]½u¡C¥i¦æ®É¡A§Ö³t«³]¬O³Q¤H°¾¦nªº¤@ºØ¤è¦¡¡C¦ý¬O³o¸Ì¦³²Ä¤TºØ¡A¸ûÃøÀ´ªº¡A«o¦³®Ä²v«³]
CPUªº¤èªk¡A¤£¥Î¨ìÁä½L±±¨î¾¹KBC©ÎFSAT
RESET ¡C³o¤èªk¸û KBC§Ö¥BÀu¡A¦Ó¥B¦b
'386¤W¤£¥Î
«³] CPU¡C¥¦ªº½T¬O³ÌÀu¡A³Ì¼sªx¨ÓÂ÷¶}«OÅ@¼Ò¦¡ªº¤èªk¡C¥¦¥i¥H¦b'386©M'286¤W¤u§@
-- ¹ï¨CÓCPU
¨Ó»¡¡A³Ì¦³®Ä²vªº
¤è¦¡¤U¡C Listing
2 ´£¨Ñ¹B¥ÎKBC ©M³oÀu¶®ªº¤è¦¡¥²nªºµ{¦¡½X¡C
¨Ï¥Î KBC¨Ó«³] CPU¬O¤@Óª½±µªº¤è¦¡¡A¦ý¬O¬°¤FnÁA¸Ñ³o§ó¦nªº§Þ³N¡A¤@¨Ç»¡©ú¬O¥²n
ªº ¡C¦^¾Ð§Ú̩ҰQ½×ªº¤¤Â_¡ACPUÀˬd¤¤Â_¼ÆÈ[x8]¬O§_¹H¤Ï¤F¦binterrupt
descriptor cache register (IDTR)
¸Ìªº¨î½d³ò¡C¦pªG³q¹LÀË´ú¡A¨º»ò±µ¤U¨Óªº¤¤Â_³B²z¶¥¬q´N¶}©l¡C¦ý¦pªGÀË´ú¥¢±Ñ¡ACPU
·|²£¥Í
¤@ÓDOUBLE FAULT (INT 08)¡CÁ|Ó¨Ò¤l¡AÅý§Ṵ́²³]¦bIDTRªº¨î½d³ò=80h¡A§Ú̪ºIDT¦³16
Ó¤¤Â_ªA°È¡A00-15¡C¦pªG¤¤Â_16©Î§ó¤j¼ÆÈªº¤¤Â_²£¥Í¡ACPU´N·|²£¥ÍDOUBLE
FAULT¡A¦]¬°¤@
Ófault¬O¦b¤¤Â_©I¥ssequence¤§ªì²£¥Íªº¡C²{¦b¡A°²³]¦bIDTRªº¨î½d³ò¬O0¡A¦]¦¹¸T¤î©Ò¦³ªº¤¤
Â_ªA°È ¡C ¥ô¦ó¤¤Â_µo¥Í®É·|¾ÉPDOUBLE
FAULTªº²£¥Í¡C¦ý¬ODOUBLE
FAULT¥»¨·|²£¥Í¤@Ófault
¡A¾ÉP¨îÅܦ¨¤Ö©ó40h¡C³o³Ì«á·|¾ÉP¤@Ó
TRIPLE FAULT¡ACPU·|¶i¤J¤@ÓÃö¾÷¶g´Á¡C
Ãö¾÷¶g´Á¤£·|«³]
CPU¡A ¦]¬°¤@ÓÃö¾÷¶g´Á³Qµø¬°¬O¤@Ӷ׬y±Æ(BUS)¶g´Á¡CÁõÄÝ©ó
CPU
ªº¥~¬ÉªºµwÅé¥h¿ëÃÑÃö¾÷¶g´Á¡C·í¤@ÓÃö¾÷¶g´Á³Q¹îı¡A¨º¥~¬ÉµwÅé
toggle CPUªº RESET ¿é¤J¡C
¦]¦¹¡A§ÚÌ©Òn°µªº¡A
´N¬OÅýRESET³Q³]¬° IDTR.LIMLT =
0¡AµM«á²£¥Í¤@Ó¤¤Â_¡C§Ṳ́£»Ýn½Õ
¾ã CPUªºINT¡A§Ú̲£¥Í
¤@Ó¤£¦X²zªº¹Bºâ½X
(opcode) ¡C§Ú̪º¹Bºâ½X¬O¥J²Ó¬D¿ï¹Lªº¡A¤£¦s¦b
'286
¸Ì¡A¦ý¬O¦s¦b '386¡C¬°¤F³o¥Øªº³Q¿ï¥X¨Óªº¹Bºâ½X¡GMOV¡ACR0¡AEAX¡C³o±N·|¦b'286²£¥Í¹w´Áªº
¤£¦X²zªº¹Bºâ½Xexception¡A¦ý¬O¬O²Ä¤@ÓÂ÷¶}'386«OÅ@¼Ò¦¡ªº«ü¥O¡C¦]¦¹
'286³Q«³]¡A'386¤£¥Î¦ý
º}«G¦aÂ÷¶}«OÅ@¼Ò¦¡¡C
Â÷¶}'286©M'386ªº«OÅ@¼Ò¦¡¡A»P¶i¤J«OÅ@¼Ò¦¡ªº¬Û¤Ï¨BÆJ«D±`ªº¬Û¦ü¡C¦b'286¡A§A¥²¶·¡G
¡
ª`·N¦b '386 Â÷¶}«OÅ@¼Ò¦¡»Ýn¸ü¤J¸`°Ï¼È¦s¾¹¨â¦¸¡C²Ä¤@¦¸¸ü¤J¸`°Ï¼È¦s¾¹¡A¬O¬°¤F½T«O
¯u¹ê¼Ò¦¡¬Û®e¼ÆÈ¡A³Q¦s¦bÁôÂêºdescriptor
cache registers -- §Y¨Ï¸ü¤J¦b¯u¹ê¼Ò¦¡¤U¡Adescriptor
cache registers«Ü«µø¨Ó¦Û«OÅ@¼Ò¦¡ªº¨Ï¥ÎÄݩʩM¸`°Ï¤j¤p¨î¡C²Ä¤G¦¸¸ü¤J¬O¬°¤F¥Î¯u¹ê¼Ò¦¡ªº¸`°Ï¼Æ
È©w¸q¥¦Ì¡C
¬JµM§Ú̦³©Ò¦³ªº¤u¨ã©M²z½×¶i¥X«OÅ@¼Ò¦¡¡A
§ÚÌ¥i¥HÀ³¥Î³oª¾ÃѨӼg¤@Ó¶i¤J«OÅ@¼Ò¦¡
ªºµ{¦¡¡A±q©µ¦ù°O¾ÐÅé²¾°Ê¤@ӰϬqªº¸ê®Æ¡A©MÂ÷¶}«OÅ@¼Ò¦¡
-- ¦^¨ìDOS¤U¡C Listing
4 Åã¥Ü¤@Ó
¦³³o¨Ç°ò¥»¨BÆJ¡A¥H¤Î¥i¥H¥Î¨Ó²¾°Ê¤@Ó1k°Ï¬qªº¸ê®Æ¡A±q1M¨ì§Ú̵{¦¡ªº¸ê®Æ¼È¦s¾¹ªºµ{¦¡¡C