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