section .asm global insb global insw global outb global outw insb: push ebp mov ebp, esp xor eax, eax ; Zero out eax mov dx, [ebp+8] in al, dx mov esp, ebp pop ebp ret insw: push ebp mov ebp, esp xor eax, eax ; Zero out eax mov dx, [ebp+8] in ax, dx mov esp, ebp pop ebp ret outb: push ebp mov ebp, esp xor eax, eax mov ax, [ebp+12] ; val to write mov dx, [ebp+8] ; to this port out dx, al mov esp, ebp pop ebp ret outw: push ebp mov ebp, esp xor eax, eax mov ax, [ebp+12] ; val to write mov dx, [ebp+8] ; to this port out dx, ax mov esp, ebp pop ebp ret