diff options
Diffstat (limited to 'kernel/amd64/io/ports.S')
-rw-r--r-- | kernel/amd64/io/ports.S | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/kernel/amd64/io/ports.S b/kernel/amd64/io/ports.S new file mode 100644 index 0000000..37301a4 --- /dev/null +++ b/kernel/amd64/io/ports.S @@ -0,0 +1,24 @@ +.section .text +.global inb, outb + +inb: + push %rbp + mov %rsp, %rbp + sub $0x10, %rsp + mov %rdi, %rdx + xor %rax, %rax + in (%dx), %al + add $0x10, %rsp + pop %rbp + ret + +outb: + push %rbp + mov %rsp, %rbp + sub $0x10, %rsp + mov %rdi, %rdx + mov %rsi, %rax + out %al, (%dx) + add $0x10, %rsp + pop %rbp + ret |