rk/io.c
2024-05-23 00:31:32 -05:00

28 lines
501 B
C

#include <io.h>
uint8_t inportb(uint16_t port) {
uint8_t result;
asm volatile ("in %%dx, %%al"
: "=a" (result)
: "d" (port));
return result;
}
void outportb(uint16_t port, uint8_t byte) {
asm volatile ("out %%al, %%dx"
: // no output
: "a" (byte), "d" (port));
}
uint16_t inportw(uint16_t port) {
uint16_t result;
asm volatile ("in %%dx, %%ax"
: "=a" (result)
: "d" (port));
return result;
}