Countdos.c
上传用户:dq031136
上传日期:2022-08-08
资源大小:802k
文件大小:1k
源码类别:

VC书籍

开发平台:

C++ Builder

  1. #include <stdio.h>
  2. #include <dos.h>
  3. #include <dir.h>
  4. int function[255];  // DOS services
  5. void interrupt far (*original_handler)();
  6. void interrupt far handler(void)
  7.  {
  8.    char i;
  9.    asm { mov i, ah }
  10.    
  11.    function[i]++;
  12.  
  13.    _chain_intr(original_handler);
  14.  }
  15. void main(void)
  16.  {
  17.    int i;
  18.         
  19.    for (i = 0; i < 255; i++) // Zero the function counts
  20.      function[i] = 0;
  21.    original_handler = _dos_getvect(0x21);
  22.    _disable();
  23.    _dos_setvect(0x21, handler);
  24.    _enable();
  25.    printf("This is a messagen");
  26.    fprintf(stdout, "This is a second messagen");
  27.    printf("Current disk is %cn", getdisk() + 'A');
  28.    _disable();
  29.    _dos_setvect(0x21, original_handler);
  30.    _enable();
  31.  
  32.  
  33.    for (i = 0; i <= 255; i++)
  34.      if (function[i])
  35.        printf("Function %x called %d timesn", i, function[i]);
  36.  }