Ports.c
上传用户:mery1987
上传日期:2007-01-03
资源大小:3k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #include "ports.h"
  2. //-----------------------------------------------------------------------
  3. //  functions
  4. //      inport  - inputs a word from a hardware port
  5. //      inportb - inputs a byte from a hardware port
  6. //      inp     - inputs a byte from a hardware port
  7. //      inpw    - inputs a word from a hardware port
  8. //
  9. //      outport  - outputs a word to a hardware port
  10. //      outportb - outputs a byte to a hardware port
  11. //      outp     - outputs a byte to a hardware port
  12. //      outpw    - outputs a word to a hardware port
  13. //-----------------------------------------------------------------------
  14. unsigned short inport(unsigned short port)
  15. {
  16.     asm     mov     dx,port
  17.     asm     in      ax,dx
  18.         return _AX;
  19. }
  20. unsigned char inportb(unsigned short port)
  21. {
  22.     asm     mov     dx,port
  23.     asm     in      al,dx
  24.     asm     xor     ah,ah
  25.         return _AX;
  26. }
  27. unsigned short inpw(unsigned short port)
  28. {
  29.     asm     mov     dx,port
  30.     asm     in      ax,dx
  31.         return _AX;
  32. }
  33. short int inp(unsigned short port)
  34. {
  35.     asm     mov     dx,port
  36.     asm     in      al,dx
  37.     asm     xor     ah,ah
  38.         return _AX;
  39. }
  40. void outport(unsigned short port, unsigned short val)
  41. {
  42.     asm     mov     dx, port
  43.     asm     mov     ax, val
  44.     asm     out     dx, ax
  45. }
  46. void outportb(unsigned short port, unsigned char val)
  47. {
  48.     asm     mov     dx, port
  49.     asm     mov     al, val
  50.     asm     out     dx, al
  51. }
  52. unsigned short outpw(unsigned short port, unsigned short val)
  53. {
  54.     asm     mov     dx, port
  55.     asm     mov     ax, val
  56.     asm     out     dx, ax
  57.         return (_AX);
  58. }
  59. short int outp(unsigned short port, unsigned char val)
  60. {
  61.     asm     mov     dx, port
  62.     asm     mov     al, val
  63.     asm     out     dx, al
  64.     asm     xor     ah, ah
  65.         return (_AX);
  66. }