17.4

                                      µwÅ餤Â_


       µwÅ餤Â_¬O»P¤j¦h¼Æªº¤uµ{®v(¬Û¹ï PC µ{¦¡³]­p®v¦Ó¨¥)¬ÛÃöÁpªº¤¤Â_³N»y¡C
 ¦b¦¹³B§Ú­Ì±N§¹¥þ¥H"interrupt(¤¤Â_)"¨Óªí¥Ü"hardware interrupt(µwÅ餤Â_)"¡C
 
 

  ¦bPC¹q¸£¤W¡A¤¤Â_¥Ñ³\¦h¤£¦Pªº¨Ó·½©Ò¤Þµo¡CµM¦Ó¤¤Â_³Ì¥D­nÁÙ¬O¥Ñ­p®É¾¹
  ´¹¤ù¡AÁä½L¡A¦ê¦C¶Ç¿é°ð¡A¨Ã¦C¶Ç¿é°ð¡AºÏºÐ¾÷¡ACMOS§Y®É¯ß½Ä¡A·Æ¹«¡A­µ®Ä
  ¥d¡A©M¨ä¥L©PÃä³]³Æ©Ò¤Þµo¡C ³o¨Ç¸Ë¸m³s±µ¦Üintel 8259A ¥iµ{¦¡¤¤Â_±±¨î¾¹(pic)¡A
  °Ï¤À80x86cpu¤¤Â_©M¤¶­±ªºÀu¥ý¶¶§Ç¡C³o­Ó8259A´¹¤ù¼W¥[¤F³nÅé³B²z¤¤Â_ªº¥iÆ[
  ½ÆÂø«×¡A©Ò¥H¦b§Ú­Ì¸ÕµÛ´y­z¤¤Â_ªA°Èµ{¦¡¦p¦ó³B²z¥¦¤§«e¡A¥ý°Q½×¥iµ{¦¡¤¤Â_
  ±±¨î¾¹·|¬Û·í²z·Q¡CµM«á¡A¦b³o­Ó³¡¤À¤¤±N·|²³æªº´y­z¥iµ{¦¡¤¤Â_±±¨î¾¹¤¤Â_
  CPU¤Uªº¨C¤@­Ó¸Ë¸m©M±¡ªp¡C³o­Ó¤å¥ó±N·|¦b³Ì«á¤@³¹¤¤§¹¾ãªº´y­z³o¨Ç¸Ë¸m¡A
  ©Ò¥H¦b³o¤@³¹°£¤F¦b°Q½×­p®É¾¹¤¤Â_¥~¡A±N¤£·|´£¨ì¤Ó¦hªº²Ó¸`¡C
 
 


17.4.1

              8259A¥iµ{¦¡¤¤Â_±±¨î¾¹(PIC)


³o­Ó8259A¥iµ{¦¡¤¤Â_±±¨î¾¹´¹¤ù±q¶W¹L¤KºØ¤£¦Pªº¸Ë¸m±µ¨ü¤¤Â_¡C°²­Y³o¨Ç¸Ë¸m¤¤
¥ô¦ó¤@­Ó­n¨DªA°È¡A³o­Ó8259±N·|¤Á´«¤@­Ó¤¤Â_¿é¥X¦æ(³s¦ÜCPU)¦Ó¥B¶Ç¤@­Ó¥iµ{¦¡
¤¤Â_¦V¶q¦ÜCPU¡C§A¥i¥H¦ê±µ9­Ó8259±±¨î¾¹¨Ó¤ä´©¦Ü64­Ó¸Ë¸m:¨ä¤¤¦³¤K­Ó¿é¤JºÝªº
¤K­Ó¸Ë¸mªº¨C¤@­Ó¿é¥XºÝÅܦ¨¤F²Ä¤E­Ó¸Ë¸mªº¤K­Ó¿é¤JºÝ¡C¤@­Ó¨å«¬ªºPC¹q¸£¨Ï¥Î
¤F¨â­Ó±±¨î¾¹¨Ó´£¨Ñ15­Ó¤¤Â_¿é¤J(¦³¤C­Ó¬O¦b¥D­nªº±±¨î¾¹¤W¡A¦Ó¥t¥~²Ä¤K­Ó¿é¤J
ºÝ¬O¥Ñ¦¸­nªº±±¨î¾¹©Ò¨Ï¥Î¨Ó³B²z¥¦ªº¤K­Ó¿é¤JºÝ)¡Cºò¸òµÛªº³o­Ó³¡¤À±N·|´y­z³o
¨Ç³s©¹¨C¤@­Ó¿é¤JºÝªº¸Ë¸m¡A©Ò¥H²{¦b§Ú­Ì±N·|±Mª`¦b8259¤Î³o¨Ç¿é¤JºÝ¤W¡C¬°¤F
°Q½×ªº½t¬G¡A©³¤Uªº³o¨Çªí®æ¡A¦C¥X¤F¦bPC¤Wªº¤¤Â_¨Ó·½¡C
 
8259¥iµ{¦¡¤¤Â_±±¨î¾¹¿é¤J 
 
Input on 8259 80x86 INT ¸Ë¸m(Device)
IRQ 0 8 ­p®É¾¹´¹¤ù(timer chip)
IRQ 1 9 Áä½L(Keyboard)
IRQ 2 0Ah ¦ê±µªº¦¸­n±±¨î¾¹ 
(Cascade for controller 2 (IRQ 8-15))
IRQ 3 0Bh ¦ê¦C°ð2(Serial port 2)
IRQ 4 0Ch ¦ê¦C°ð1(Serial port 1)
IRQ 5 0Dh ¨Ã¦C°ð2¡A«O¯dµ¹PS/2¨Ï¥Î 
(Parallel port 2 in AT, reserved in PS/2 systems)
IRQ 6 0Eh ºÏºÐ¾÷(Diskette drive)
IRQ 7 0Fh ¨Ã¦C°ð1(Parallel port 1)
IRQ 8/0 70h §Y®É­p®É¾¹(Real-time clock)
IRQ 9/1 71h CGA vertical retrace (and other IRQ 2 devices)
IRQ 10/2 72h «O¯d(Reserved)
IRQ 11/3 73h «O¯d(Reserved)
IRQ 12/4 74h «O¯dµ¹AT¡APS/2¨t²Î¤Wªº»²§U¸Ë¸m 
(Reserved in AT, auxiliary device on PS/2 systems)
IRQ 13/5 75h ¯BÂI¹Bºâ¤¤Â_(FPU interrupt)
IRQ 14/6 76h µwºÐ±±¨î¾¹(Hard disk controller)
IRQ 15/7 77h «O¯d(Reserved)
 

³o­Ó8259 PIC ¹ïµ{¦¡¨Ó»¡¬O¤@­Ó½ÆÂøªº´¹¤ù¡C©¯¹Bªº¬O¡A¹ï©ó©Ò¦³³o¨ÇµwÅé¡A¦b±Ò
°Êªº®É­Ô¡ABIOS´N¤w¸gÀ°§A°µ¦n¤F¡C¦b¥»¤å¤¤§Ú­Ì¤£¥Î¥h°Q½×¦p¦ó¥hªì©l¤Æ³o­Ó´¹
¤ù¡A¦]¬°³o­Ó°T®§¥u¹ï¨º¨Ç­n¼g§@·~¨t²Îªº¦³¥Î¦Ó¤w¡A¹³¬OLinux¡AWindows¡Aor OS/2¡C°²¨Ï§A·Q­n§A¦Û¤vªº¤¤Â_ªA°Èµ{¦¡¥h¥¿½T¦a¦bDOS©Î¬O¨ä¥LOS©³¤U¶]¡A§A
¥²¶·¥ýªì©l¤Æ³o­ÓPIC¡C
¨t²ÎªºPICs¤¶­±¦³¸g¹L¥|­ÓI/O¦ì¸m¡G20h/0A0h 21h/0A1h¡C¨C¤@¹ïªº²Ä¤@­Ó¦ì§}¬O¥D
­nPIC(IRQ0-7)ªº¦ì§}¡A¦Ó¨C¤@¹ïªº²Ä¤G­Ó¬O»P¦¸­nªºPIC(IRQ8-15)¤@­P¡C20h/0A0h°ð
¬O¤@­ÓÅý§A¥i¥H¼gPIC©R¥O©MŪPICª¬ºAªºÅª/¼g¦ì¸m¡A§Ú­Ì±N¥¦ºÙ¬°©R¥O¼È¦s¾¹©Î¬O
ª¬ºA¼È¼È¾¹¡C©R¥O¼È¦s¾¹¥u¯à¼g¡A¦Óª¬ºA¼È¦s¾¹¥u¯àŪ¡C³o¨â­Ó¥u¬O«ê¥©¦@¥Î¦P¤@
­ÓI/O¦ì¸m¡C¦bPIC¤WªºÅª/¼g½u¨M©w¤FCPU¦s¨ú­þ¤@­Ó¼È¦s¾¹¡C21h/0A1h°ð¬O¤@­Ó¥]§t
¤¤Â_¾B¸n¼È¦s¾¹ªºÅª/¼g¦ì¸m¡A§Ú­Ì±N¤§ºÙ¬°¾B¸n¼È¦s¾¹¡C¨Ì§A·Q­nªº¬O­þ¤@ºØ¤¤Â_
±±¨î¾¹¨Ó¿ï¾Ü¾A©yªº¦ì§}¡C
¤¤Â_¾B¸n¼È¦s¾¹¬O¤@­Ó¤Kbit¼È¦s¾¹¥i¥HÅý§A¥Ñ¨t²Î¤Wªº¸Ë¸m³æ¿W¦a±N¤¤Â_­P¯à©M°£¯à¡C
³o¬OÃþ¦ücli©Msti«ü¥Oªº°Ê§@¡A¦ý¥u¬O§@¥Î¦b¤@­Ó¸Ë¸mªº°ò¦¤W¡C¼g¤@­Ózero¨ì¹ïÀ³ªº¦ì
¤¸­P¯à¸Ë¸mªº¤¤Â_¡C¦b¤@­Ó³Q¼vÅTªº¸Ë¸m¼g¤@­Ó°£¯à¤¤Â_¡Cª`·N³o¬O¨S¦³¸`¨îªº¨Ï¥Î¡C
©³¤Uªº³o­Ó¹Ï¤ù´£¨Ñ¤F¤¤Â_¾B¸n¼È¦s¾¹ªº°t¸m¹Ï¡C
 
 
 

·í§ïÅܾB¸n¼È¦s¾¹ªº¦ì¤¸¡A§A¤£¬O¥u­n±Nal¸ü¤J¤@­Ó­È©Mª½±µ¦a¿é¥X¦Ü¾B¸n¼È
¦s¾¹°ð¦Ó¤w¡C¬Û¤Ï¦a¡A§A¥²¶·Åª¨ú¾B¸n¼È¦s¾¹µM«á±NÅÞ¿èor³]©w§A·Q­n§ïÅܪº
¦ì¤¸©ÎªÌ±NÅÞ¿èand²M°£§A·Q­n§ïÅܪº¦ì¤¸¡F³Ì«á¡A§A´N¯à±N¿é¥X¼g¦^¾B¸n¼È
¦s¾¹¡C©³¤Uªº³o­Óµ{¦¡½X¨Ì§Çªº­P¯àCOM1¡G¤£·|¼vÅT¨ì¨ä¥Lªº¤¤Â_¡C
                in      al, 21h         ;Read existing bits.
                and     al, 0efh        ;Turn on IRQ 4 (COM1).
                out     21h, al         ;Write result back to PIC.³o­Ó©R¥O¼È¦s¾¹´£¨Ñ¤F«Ü¦hªº¿ï¶µ¡A¦ý¬O¥u¦³§A·Q­n¦b³o­Ó´¹¤ù¤W°õ¦æªº¤T­Ó«ü¥O¬O
»P8259ªºBIOS'ªºªì©l­È¬O¬Û®eªº¡G¶Ç°e¤¤Â_«ü¥Oªºµ²§ô©M¶Ç°e¨â­ÓŪ¨ú¼È¦s¾¹«ü¥Oªº
¨ä¤¤¤@­Ó¡C
 
·í¤@­Ó¯S®íªº¤¤Â_µo¥Í¡A8259¾B¸n¤F¸Ë¸m¤¤©Ò¦³¨ä¥Lªº¤¤Â_¡Aª½¨ì¤¤Â_ªA°Èµ{¦¡±µ¨ü
¨ì¤@­Ó¤¤Â_µ²§ôªº«H¸¹¡C¦bPC¹q¸£¤W¶]DOS¡A§A¼g¤J¤@­Ó­È20h¨ì©R¥O¼È¦s¾¹¨Ó§¹¦¨³o
­Ó°Ê§@¡C©³¤Uªº³o­Óµ{¦¡½X°µ¤F³o­Ó¤u§@¡C

                mov     al, 20h
                out     20h, al         ;Port 0A0h if IRQ 8-15.
¹ï©ó§A·Q­nªº¨C¤@­Ó¤¤Â_ªA°È¡A§A¥²¶·¶Ç°e¥¿½Tªº¤¤Â_©R¥O¨ìPIC¤¤¡C°²¨Ï§A¨S¦³¶Ç°e
¤¤Â_µ²§ô©R¥O¡APIC±N¤£·|¤¹³\¥Ñ³o­Ó¸Ë¸m¶Ç¨Óªº¨ä¥L¤¤Â_¡F¤S­Y§A¶Ç°e¨â­Ó©Î§ó¦h
ªº¤¤Â_µ²§ô©R¥O¡A«h¦³¥i¯à¦b§A¸I¥©¶Ç°e¤@­Ó·sªº¤¤Â_ªº´Á¶¡¡A§A·|¥¢¥h³o­Ó¤¤Â_¡C
¦Ó¹ï¬Y¨Ç§A¼gªº¤¤Â_ªA°Èµ{¦¡¡A§Aªº¤¤Â_³B²zµ{¦¡(ISR)±N¤£¦A¥u¬O¤¤Â_´©¥ÎªºISR¡C
Á|¨Ò¨Ó»¡¡APC¹q¸£ªºBIOS´£¨Ñ¤@­ÓISR¨Ó°µ­p®É¾¹¤¤Â_¡Aºû@¤Ñ®É¶¡ªº¶i¦æ¡C°²
¦p§A°±¤î¤F³o­Ó­p®É¾¹ªº¤¤Â_¡A§A±N»Ý­n¥h©I¥s¹q¸£ªºBIOS­p®É¾¹ISRÅý³o­Ó¨t²Î
¥i¥H¥¿±`ªººû@¤Ñªº®É¶¡©M³B²z¨ä¥L»P­p®É¬ÛÃöªºÂø°È(½Ð¬Ý 1010­¶ªº"Chaining Interrupt Service Routimes")¡CµL½×¦p¦ó¡A³o­ÓBIOSªº­p®É¾¹ISR¿é¥X¤¤Â_µ²§ôªº©R¥O¡C
¦]¦¹¡A§A¤£¯à¦Û¤v¿é¥X¤@­Ó¤¤Â_µ²§ôªº©R¥O¡A§_«hBIOS±N·|¿é¥X²Ä¤G­Ó¤¤Â_µ²§ôªº
©R¥OµM«á§A·|¦b³o­Ó¹Lµ{¤¤¥¢¥h¤@­Ó¤¤Â_¡C

§A¯à¶Ç°eªº8259¨ä¥L¨â­Ó©R¥OÅý§A¥i¥H¿ï¾Ü¬O§_Ū¨úin-service¼È¦s¾¹(ISR¤¤Â_ªA°È¼È
¦s¾¹)©ÎªÌ¬O interrupt request ¼È¦s¾¹(IRR¤¤Â_­n¨D¼È¦s¾¹)¡CIn-service ¼È¦s¾¹¥]§t¹ï¨C
¤@­Ó¹B§@¤¤ªºISR¦ì¤¸ªº¶°¦X¡C(¦]¬°8259¤¹³\Àu¥ý¶¶§Çªº¤¤Â_¡A©Ò¥H¤@­ÓISR¬Û·í¦³
¥i¯à³Q¤@­Ó¸û°ªÀu¥ýÅvªºISR©Ò¤¤Â_)¡CInterrupt request¼È¦s¾¹¥]§t¤F¦b©|¥¼³QªA°Èªº¤¤
Â_¹ïÀ³¦ì¸m¦ì¤¸ªº¶°¦X(¦³¥i¯à¬O¦]¬°ÄÝ©ó¤ñ¨º¨Ç³Q¨t²ÎªA°È¤¤ªº¤¤Â_ÁÙ­n§CÀu¥ýÅvªº
¤¤Â_)¡C­nŪ¨úin-service ¼È¦s¾¹¡A§A»Ý­n¥ý³B²z¤Uªº±Ô­z¡C

;¦bPIC#1Ū¨ú in-service ¼È¦s¾¹(¦bI/O 20h¦ì§})

                mov     al, 0bh
                out     20h, al
                in      al, 20h
 
Ū¨ú¤¤Â_­n¨D¼È¦s¾¹¡A§A»Ý¨Ï¥Î©³¤Uªºµ{¦¡½X¡G
;¦bPIC#1¤¤Åª¨úinterrupt request ¼È¦s¾¹(¦bI/O¦ì§}20h)
                mov     al, 0ah
                out     20h, al
                in      al, 20h
¼g¤J¨ä¥Lªº­È¨ì©R¥O°ð¤]³\·|³y¦¨§Aªº¨t²Î¥¢¥h§@¥Î¡C

17.4.2

                     ­p®É¾¹¤¤Â_(INT 8)



PC¹q¸£ªº¥D¾÷ªO¥]§t¤F¤@­Ó»P8254¬Û®eªº­p®É¾¹´¹¤ù¡C³o­Ó´¹¤ù¦³¤T­Ó­p®ÉªºÀW¹D¡A
¨ä¤¤¤@­Ó¨C55MSEC(¤j­P¤W)´N²£¥Í¤¤Â_¡C³o­Ó­È¤j¬ùµ¥©ó¨C1/18.2¬í´N²£¥Í¤¤Â_¡C
§A±N·|±`±`Å¥¨ì³o­Ó¤¤Â_³QºÙ¬°"eighteenth second clock"¡C§Ú­Ì²³æªººÙ¥L¬°­p®É¾¹
¤¤Â_¡C
 

­p®É¾¹¤¤Â_¦V¶q¤j·§¬O¦b¨t²Î¤¤³Ì±`³Q§ó§ïªº¤¤Â_¡C¥¦¦b¨t²Î¤¤¦³¨â­Ó¡CInt 8 ¬O»P­p®É¾¹¤¤Â_¬ÛÃöÁpªºµwÅé¦V¶q(¦]¬°¥¦¶}©l©ó¦bPIC¤WªºIRQ0)¡C¤@¯ë¨Ó»¡¡A­Y§A
·Q¼g¤@­Ó­p®É¾¹ISR§A¤£¯à§ïÅܳo­Ó¤¤Â_¡C¬Û¤Ï¦a¡A §AÀ³¸Ó§ïÅܲĤG­Ó­p®É¾¹¤¤Â_¡A
1ch¤¤Â_¡CBIOSªº­p®É¾¹¤¤Â_³B²zµ{¦¡(int 8)°õ¦æ¤@­Óint  1ch«ü¥O©ó¥¦µ²§ô¤§«e¡C³o
¥i¥HÅý¨Ï¥ÎªÌ§ïÅÜ­p®É¾¹¤¤Â_ªº°Æµ{¦¡¦s¨ú¡C°£«D§A·Q­n½Æ»sBIOS©MDOS­p®É¾¹ªº
µ{¦¡½X¡A§AµLªk§¹¥þªº¥Î¦Û¤vªº¥ô¤@­Ó¨Ó¨ú¥N²{¦³­p®É¾¹ISR¡A°£¤F§A¦Û¤vªºISR
§AÁÙ¥²¶·¤@ª½½T«OBIOS©MDOS ISRs¦³¦b°õ¦æ ¡C§ïÅÜint 1ch¦V¶q¬O°µ³o­Ó°Ê§@³Ì²
³æªº¤èªk¡C
 
 ¬Æ¦Ü©ó¥Î«ü¦VISRªº«ü¼Ð¨Ó¨ú¥Nint 1ch¦V¶q¬O«D±`¦MÀIªº¡C­p®É¾¹¤¤Â_ªA°È°Æµ{¦¡¬O³Ì
±`³Q¤£¦Pªº±`¾nµ{¦¡©Ò§ïÅÜ¡C¥u¬O²³æªº±N§AªºISR¦ì§}¼g¤J­p®É¾¹¤¤Â_¦V¶q¡A§A¤]
³\·|°£¯à±`¾nµ{¦¡¦Ó¥B³y¦¨¨t²Î¥¢¥h§@¥Î¡C¬°¤F¸Ñ¨M³o¼Ëªº°ÝÃD¡A§A»Ý­n³Ð³y¤@­Ó
¤¤Â_Ãìµ²¡C»Ý­n§ó¦hªº²Ó¸`¡A½Ð¬Ý"Chaining Interrupt Service Routines"on page 1010¡C
 
¹w³]ªº­p®É¾¹¤¤Â_Á`¬O¦b¤¤Â_±±¨î´¹¤ù³Q­P¯à¡Cªº½T¡A°£¯à³o­Ó¤¤Â_¥i¯à·|³y¦¨§Aªº
¨t²Î·í±¼©Î¬O¨ä¥Lªº°ÝÃD¡C¦Ü¤Ö¡A§Aªº¨t²Î±NµLªkºûÅ@¥¿½Tªº®É¶¡°²¨Ï§A°£¯à³o­Ó­p
®É¾¹¤¤Â_¡C


17.4.3

                          Áä½L¤¤Â_(INT 9)

¦bPCªº¥D¾÷ªO¤WªºÁä½L·L¤p±±¨î¾¹¦b¨C¦¸ªºÀ»Áä²£¥Í¨â­Ó¤¤Â_-¤@­Ó¦b§A«ö¤@­ÓÁä®É¦Ó
¤@­Ó¬O¦b§A©ñ¶}«öÁä®É¡C³o­Ó¬O¦b¥D­nPICªºIRQ1¤W¡CBIOS¦^À³³o­Ó¤¤Â_¦ÓŪ¨ú³o
­ÓÁä½L±½´y½X¡AÂà´«¦¨ASCII¦r¤¸¡AµM«á§â±½´y½X¤ÎASCII½X¦s¤JÁä½L½w½Ä°Ï¤¤¡C
¹w³]±¡ªp¤U¡A³o­Ó¤¤Â_Á`¬O³Q­P¯à¡C°²¨Ï§A°£¯à³o­Ó¤¤Â_¡A¨t²Î±N¤£·|¦^À³¥ô¦óªº
À»Áä¡A¥]¬ACTRL-ALT-DEL¡C©Ò¥H°²­Y¤¤Â_¦³³Q°£¯à¡A«h§Aªºµ{¦¡¥²¶·¦A­P¯à³o­Ó
¤¤Â_¡C
 
 


17.4.4

                     ¦ê¦C°ð¤¤Â_(INT 0Bh ©MINT 0Ch)


PC¨Ï¥Î¤G­Ó¤¤Â_¡AIRQ3©MIRQ4¡A¨Óºû«ù¤¤Â_ÅX¨Ï¦ê¦CÁpô¡C8250(©Î¬O¬Û®e)¦ê¦CÁpô
±±¨î´¹¤ù(SCC)¦b³o¥|­Ó±¡ªp¤U²£¥Í¤@­Ó¤¤Â_¡G¤@­Ó¦r¤¸¨ì¹F¦ê¦C½u¡ASCC§¹¦¨¤@­Ó¦r
¤¸ªº¶Ç¿é¦Ó¥B­n¨D¨ä¥Lªº¦r¤¸¡A¤@­Ó¿ù»~ªºµo¥Í¡A©Î¬O¤@­Óª¬ºA§ïÅܪºµo¥Í¡CSCC¹ï
©Ò¦³¥|­Ó¤¤Â_¨Ó·½²£¥Í¦P¼Ëªº¤¤Â_½u(IRQ3©Î4)¡C¤¤Â_ªA°È°Æµ{¦¡¦³³d¥ô°T°ÝSCC¨Ó
¨M©w¤¤Â_ªººë±K¦ÛµM¡C
 

¹w³]±¡ªp¤U¡A¨t²Î°£¯àIRQ3©MIRQ4¡C°²¨Ï§A¦w¸Ë¤@­Ó¦ê¦CISR¡A¦b¥¦¥ÑSCC¦^À³¤¤Â_
«e¡A§A»Ý­n²M°£¦b8259PIC¤¤ªº¤¤Â_¾B¸n¦ì¤¸¡C¦¹¥~¡ASCC³]­p¥]¬A¤F¥¦¦Û¤v¾Ö¦³ªº
¤¤Â_¾B¸n¡C§A±N»Ý­P¯à¦bSCC´¹¤ù¤Wªº¤¤Â_¾B¸n¡C­n±o¨ì§ó¦h¦bSCC¤Wªº¸ê°T¡A½Ð¬Ý
¬Ý¾A·íªº³¹¸`¡C


17.4.5

                             ¨Ã¦C°ð¤¤Â_(INT 0Dh ©M INT 0Fh)


¨Ã¦C°ð¤¤Â_¬O¤@­ÓÁ¼¡CIBM³]­p¤F¤@­Ó¤¹³\¨â­Ó¨Ã¦C°ð¤¤Â_ªº­ì©l¨t²Î¦Ó¥B«Ü§Öªº¤S³]
­p¤F¤@­Ó¤£¤ä´©³o­Ó¤¤Â_¨Ï¥Îªº¦Lªí¾÷¤¶­±¥d¡Cµ²ªG¡A´X¥G²{¦b¨S¦³¤@­Ó¥HDOS¬°°ò
¦ªº³nÅé¨Ï¥Î³o­Ó¨Ã¦C°ð¤¤Â_(IRQ5©MIRQ7)¡Cªº½T¡A¦bPS/2¨t²Î¤¤¡AIBM«O¯dIRQ5¡A
¥L­Ì¥H«e¬O¬°¤F¯dµ¹LPT2¨Ï¥Î¡C
 
µM¦Ó¡A³o¨Ç¤¤Â_¨Ã¨S¦³®ö¶O±¼¡C³]­p²Ä¤@¥xPCªºIBM¤uµ{®v­Ì¬Æ¦Ü¤£¯à¸m«H¦³«Ü¦hªº
¸Ë¸m¤w¸g¥R¥÷ªº§Q¥Î¤F³o¨Ç¤¤Â_¡CSCSI¥d©M­µ®Ä¥d³£¬O¨Ò¤l¡C²{¤µ«Ü¦hªº¸Ë¸m¥]§t¤F
"¤¤Â_ ¸õ°w"Åý§A¥i¥H¦b¦w¸Ë³o¨Ç¸Ë¸m®É¥i¥H¿ï¾ÜIRQ5©Î¬OIRQ7¡C
 
¦]¬°IRQ5©MIRQ7¦b¨Ã¦C°ð¤¤Â_´X¥G¨S¦³¥Î³B¡A§Ú­Ì¦b¥»¤å¹ê»Ú¤W´N±N"¨Ã¦C°ð¤¤Â_"µ¹
©¿²¤¤F¡C


17.4.6

                    ³nºÐ©MµwÅéÅX°Êªº¤¤Â_(INT 0Eh ©M INT76h)
 

³nºÐ©MµwºÐ¦bºÏºÐ¤ù¾Þ§@ªº§¹¦¨²£¥Í¤¤Â_¡C³o¹ï¦h¤uªº¨t²Î¦pOS/2¡ALinux¡A©Î¬O
Windows¨Ó»¡¬O«D±`¦³¥Îªº¯S©Ê¡C·íºÏºÐ¤ù¦bŪ©Î¼g¸ê®Æªº®É­Ô¡ACPU¥i¥H¥h°õ¦æ
¨ä¥Lµ{§Çªº«ü¥O¡C¦bºÏºÐ¤ù§¹¦¨¤FŪ©Î¼gªº¾Þ§@¡A¥¦·|¤¤Â_CPU¡A©Ò¥H¥¦¥i¥H­«·s
¦A¶}©l­ì¨Óªº¤u§@¡C
 
¾¨ºÞºÞ²zºÏºÐÅX°Ê¹ï¥»¤å¨Ó»¡¬O¤@­Ó¦³½ìªº¸ÜÃD¡A¦ý³o¥»®Ñ¤w¸g°÷ªø¤F¡C©Ò¥H¡A¥»¤å
¬°¤F¤£®ö¶O¤@¨ÇªÅ¶¡±NÁקK°Q½×ºÏºÐ¤¤Â_(IRQ6©MIRQ14)¡C¦b²Õ¦X»y¨¥¤¤¦³«Ü¦h²[»\¤F
§C¶¥ºÏºÐªº¥DÃD¡A¬Ý³o¨Ç²Ó¸`ªº°Ñ¦Ò®Ñ¥Ø¡C
 
 ¦b¹w³]ªº±¡ªp¤U¡A³nºÐ©MµwºÐ¤¤Â_¬O­P¯àªº¡C°²¦p§A­pµe¦b§Aªº¨t²Î¤W¨Ï¥ÎºÏºÐÅX°Ê
¤£¥²§ïÅܳo­Óª¬ºA¡C
 


17.4.7

                     §Y®É­p®É¾¹¤¤Â_(INT 70 h)

PC/AT©M«á¨Óªº¾÷¾¹³£¥]§t¤FCMOS§Y®É­p®É¾¹¡C³o­Ó¸Ë¸m¦³¯à¤O¦b976msecªº­¿¼Æ¤¤
²£¥Í­p®É¾¹¤¤Â_(§Ú­ÌºÙ¬°1 msec)¡C¹w³]±¡ªp¤U¡A§Y®É­p®É¾¹¤¤Â_¬O°£¯àªº¡C§A¥u
¯à­P¯à³o­Ó¤¤Â_¡A°²¨Ï§A¦³¦w¸Ëint 70h ISR¡C
 


17.4.8

                        ¯BÂI¹Bºâ¾¹¤¤Â_(INT 75h)

¨C·í¤@­Ó¯BÂI¹Bºâ²§±`µo¥Í¡A80X87¯BÂI¹Bºâ¾¹´N·|²£¥Í¤@­Ó¤¤Â_¡C¦b¤º«ØFPUªºCPU
¤¤(80486DX©Î§ó¦nªº)¦³¤@­Ó¼ÒÀÀ¦V¶q¤¤Â_ªº¦ì¤¸¦b§A¥i¥H³]©wªº±±¨î¼È¦s¾¹¤¤ªº¤@­Ó
¸Ì­±¡CBIOS³q±`¬°¤F¦s¦b¨t²Îªº¬Û®e©Ê¦Óªì©l¤Æ³o¼Ëªº¦ì¤¸¡C
 ¦b¹w³]±¡§Î¤U¡ABIOS°£¯àFPU¤¤Â_¡C¤j³¡¤À¨Ï¥ÎFPUªºµ{¦¡¦b¥~³¡´ú¸ÕFPUªºª¬ºA¼È¦s
¾¹¨Ó¨M©w¬O§_¦³¿ù»~²£¥Í¡C­Y§A¤¹³\FPU¤¤Â_¡A§A¥²¶·­P¯à¦b8259©M80x87FPU¤Wªº¤¤
Â_¡C
 


17.4.9

                       ¤£¥i¾B¸nªº¤¤Â_(INT 2 )
 



80X86´¹¤ù¨Æ¹ê¤W¯à´£¨Ñ¨â­Ó¤¤Â_¿é¤J°w¸}¡C²Ä¤@­Ó¬O¥i¾B¸nªº¤¤Â_¡C³o¬O¤@­Ó8259
PIC³s±µªº°w¸}¡C³o­Ó¤¤Â_¬O¥i¾B¸nªº¦]¬°§A¥i¥H¥Îcli©Msti«ü¥O­P¯à©Î°£¯à¥¦¡C¤£¥i
¾B¸n¤¤Â_¡A¥¿¦p¥¦ªº¦W¦r©Ò·t¥Üªº¡A¤£¯à¥Ñ³nÅé±±¨î¤U°£¯à¡C¤@¯ë¦Ó¨¥¡APCs ¨Ï¥Î³o­Ó
¤¤Â_¨Ó°µ°O¾ÐÅé¦P¦ì¿ù»~ªº«H¸¹¡AÁöµM¦b¬Y¨Ç¨t²Î¤]¨Ï¥Î³o­Ó¤¤Â_¨Ó°µ¨ä¥Lªº¥Øªº¡C
«Ü¦h¸û¦ÑªºPC¨t²Î³s±µFPU¨ì³o­Ó¤¤Â_¤W¡C

³o­Ó¤¤Â_¤£¯à³Q¾B¸n¡A©Ò¥H¦b¹w³]±¡§Î¤U¥¦Á`¬O³Q­P¯à¡C
  


17.4.10

                            ¨ä¥L¤¤Â_

¥¿¦p¦b8259PIC³¡¤À©Ò´£¨ìªº¡A¦³¤@¨Ç¤¤Â_³QIBM©Ò«O¯d¡C«Ü¦hªº¨t²Î¨Ï¥Î³Q«O
¯dªº¤¤Â_¨Ó°µ·Æ¹«©Î¨ä¥Lªº¥Øªº¡C¦]¦¹³o¼Ëªº¤¤Â_¬O³QÄ~©Ó¨t²Î©Ò¨Ì¿à¡A¦b³o¸Ì
§Ú­Ì±N¤£·|°Q½×¡C
 
 


[6]
­ì©lªº8259¬O¥ÑIntelªº8080¨t²Î©Ò³]­p¡C8259A´£¨Ñ¤F¹ï80x86©M¨ä¥L¯S©Êªº¤ä´©¡C¦]
¦¹´X¥G¨S¦³¤H¦A¨Ï¥Î8259´¹¤ù¡A¥»¤å±N¨Ï¥Î¼Ð·Ç¼Ë¥»³N»y8259¡C


[7]
­ì©lªºIBM PC©MPC/XT¾÷¾¹¥u¸g¥Ñ¤@­Ó8259´¹¤ù¤ä´©¤K­Ó¤¤Â_¡CIBM¡A¨Æ¹ê¤W¬O©Ò¦³
¬ÛÃöªº»s³y°Ó¡A¼W¥[¤F²Ä¤G­ÓPIC¦bPC/AT©M«á¨Óªº³]­p¤W­±¡C
 
 
 
 

Art of Assembly: Chaper Seventeen - 29 SEP 1996
 ¨Ó·½¡Ghttp://webster.ucr.edu/Page_asm/ArtofAssembly/ArtofAsm.html