diff options
Diffstat (limited to 'src/kernel/util.asm')
-rw-r--r-- | src/kernel/util.asm | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/kernel/util.asm b/src/kernel/util.asm new file mode 100644 index 0000000..acac17f --- /dev/null +++ b/src/kernel/util.asm @@ -0,0 +1,37 @@ +bits 32 + +global outb +global inb +global outw +global inw + +section .text +outb: + ;word [esp + 4] = port + ;byte [esp + 8] = value + mov dx, word [esp + 4] + mov al, byte [esp + 8] + out dx, al + ret + +inb: + ;word [esp + 4] = port + ;al out = value + mov dx, word [esp + 4] + in al, dx + ret + +outw: + ;word [esp + 4] = port + ;word [esp + 8] = value + mov dx, word [esp + 4] + mov ax, word [esp + 8] + out dx, ax + ret + +inw: + ;word [esp + 4] = port + ;ax out = value + mov dx, word [esp + 4] + in ax, dx + ret
\ No newline at end of file |