oxytoxin

unix-like kernel
git clone git://git.evenfri.xyz/oxytoxin.git
Log | Files | Refs | README | LICENSE

io.asm (757B)


      1 global outb
      2 global outw
      3 global inb
      4 global inw
      5 global io_wait
      6 
      7 section .text
      8 
      9 outb:
     10   push    ebp
     11   mov     ebp, esp
     12   ; [ebp+8] = port (16-bit)
     13   ; [ebp+12] = byte (8-bit)
     14   mov     dx, WORD [ebp+8]
     15   mov     al,  BYTE [ebp+12]
     16   out     dx, al
     17   pop     ebp
     18   ret
     19 
     20 outw:
     21   push    ebp
     22   mov     ebp, esp
     23   mov     dx, WORD [ebp+8]
     24   mov     ax, WORD [ebp+12]
     25   out     dx, ax
     26   pop     ebp
     27   ret
     28 
     29 inb:
     30   push    ebp
     31   mov     ebp, esp
     32   mov     dx, WORD [ebp+8]
     33   xor     eax, eax
     34   in      al, dx
     35   pop     ebp
     36   ret
     37 
     38 inw:
     39   push    ebp
     40   mov     ebp, esp
     41   mov     dx, WORD [ebp+8]
     42   xor     eax, eax
     43   in      ax, dx
     44   pop     ebp
     45   ret
     46 
     47 io_wait:
     48   push    ebp
     49   mov     ebp, esp
     50   mov     dx, 0x80
     51   xor     al, al
     52   out     dx, al
     53   pop     ebp
     54   ret