           b   
        
  ds.      interrupt-  
    . ,   
     ,       
ds      . 
    ,   ,  , 
      : 

    pop	bp                          ;     
    pop	di 
    pop	si 
    pop	ds 
    pop	es 
    pop	dx 
    pop	x 
    pop	bx 
    pop	ax 
    iret	;      

       ,    , 
   iret,     
 , ,    ,   
  int.       , 
         . 
      17.11       
 ,      asm.  
        DOS.  
     PC 0x1c,    
  ,        
BIOS, ,   ,    . 
    17.2   ,   0x1c 
   ""   ,   
 ,   ,     
.  MULTIP       
   ,     .  
<Enter>         . 

   

        ,  0xb800   5  0xb000.


     17.11.  MULTIP.CPP (   ) 

    1:   #include <stdio.h> 
    2:   #include <dos.h> 
    3:   #include <string.h> 
    4: 
    5:  #define DISPSEG 0xb800 // 0b000    
    6:	
    7: //       0x1 
    8: void interrupt (far *oldVector){...}; 
    9: 
  10: //   
  11: void Initlnterrupt(void); 
  12: void DoWhateverYouWant(void); 
  13: void Deinitlnterrupt(void); 
  14: void interrupt ShowTime(...); 
  15: 
  16: main() 
  17: { 
  18:  setcbrk(0); //     <Ctrl+C> 
  19:  Initlnterrup();
  20:  DoWhateverYouWant(); 
  21:  Deinitlnterrupt(); 
  22:  return 0; 
  23: } 
  24: 
  25: //        
  26: void Initlnterrupt(void) 
  27: { 
  28:  oldVector = getvect(0x1c); // Save current vector 
  29:  setvect(0x1c, ShowTime); // Set vector to ShowTime() 
  30: } 
    

    454	 IV.   
