home *** CD-ROM | disk | FTP | other *** search
/ Cutting-Edge 3D Game Programming with C++ / CE3DC++.ISO / BOOK / CHAP03 / OUTPORT.ASM < prev    next >
Assembly Source File  |  1995-10-20  |  1KB  |  48 lines

  1. ;
  2. ; OUTPORT.ASM
  3. ;
  4.  
  5.         .386
  6.         .MODEL  USE32 FLAT
  7.         .CODE
  8.         PUBLIC  _outportr,_outportbr
  9.  
  10. ; outportr(unsigned int portid, unsigned int value);
  11. ; Output 16-bit word VALUE to port PORTID
  12.  
  13. _outportr    PROC
  14.     ARG   portid:DWORD,value:DWORD
  15.     push  ebp           ; Save BP
  16.     mov   ebp,esp       ; Set up stack pointer
  17.     push  eax                    ; Save registers
  18.     push  edx
  19.     mov   dx,[ebp+8]    ; Get port number
  20.     mov   ax,[ebp+12]   ; Get value to be output
  21.     out   dx,ax         ; Send to port
  22.     pop      edx           ; Restore registers
  23.     pop      eax
  24.     pop      ebp           ; Restore BP
  25.     ret
  26. _outportr    ENDP
  27.  
  28. ; outportbr(unsigned int portid, unsigned int value);
  29. ; Output 8-bit word VALUE to port PORTID
  30.  
  31. _outportbr    PROC
  32.     ARG   portid:DWORD,value:DWORD
  33.     push  ebp           ; Save BP
  34.     mov   ebp,esp       ; Set up stack pointer
  35.     push  eax                    ; Save registers
  36.     push  edx
  37.     mov   dx,[ebp+8]    ; Get port number
  38.     mov   al,[ebp+12]   ; Get value to be output
  39.     out   dx,al         ; Send to port
  40.     pop      edx           ; Restore registers
  41.     pop      eax
  42.     pop      ebp           ; Restore BP
  43.     ret
  44. _outportbr    ENDP
  45.  
  46.         END
  47.  
  48.