Π€ΠΎΠ½ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΎΡΠΌΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π³Π»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ — ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌΠΈ Π΄ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²Π΅ΠΊΡΠΎΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΠ£ (Ρ.Π΅. Π·Π°ΠΏΠΈΡΡ Π²Π΅ΠΊΡΠΎΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Turbo Pascal ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ DOS (WINDOS):
Procedure SetlntVec (IntNo: byte; IntProcAddr: Pointer);
Π³Π΄Π΅ IntNo — Π½ΠΎΠΌΠ΅Ρ ΡΠΈΠΏΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ = ΠΠΠ = 4 * IntNo; IntProcAddr — Π²Π΅ΠΊΡΠΎΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ; ΡΠΈΠΏ Pointer — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ — ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°Π΄ΡΠ΅Ρ Π±Π°ΠΉΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΡΡΠΎΡ Π°Π΄ΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ — ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π΄Π²ΡΡ
ΡΠ»ΠΎΠ², ΡΡΠ°ΠΊΡΡΠ΅ΠΌΡΡ
ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΡΠ°ΡΡΠΉ Π²Π΅ΠΊΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΡΠ΅ΡΡΠ½, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ. Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ DOS (WINDOS):
Procedure GetIntVec (IntNo: byte; Var Π Id IntProcAddr: pointer);
Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π¦Π Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. ΠΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΎΡΠΎΡΠΌΠ»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Interrupt:
Procedure IntXXX; Intemipt;
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Intemipt ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ
ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΠΊΠ΅ Π²ΡΠ΅Ρ
ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π¦Π ΠΏΡΠΈ Π²Ρ
ΠΎΠ΄Π΅ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ IntXXX ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΡ
ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΏΡΠΈ Π΅Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ. ΠΠ°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ IRET — Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, Π° Π½Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ RET, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π¦Π Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π‘ΡΠ ΠΈ Π Π‘Π.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΡ/ΡΠ±ΡΠΎΡ ΡΠ»Π°Π³Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ Flags ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠ°Π²ΠΊΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
asm STI end; {IF=1, ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ.} asm CLI end; {IF=0, ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ.}.