2024-05-20 05:59:07 -04:00
|
|
|
#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));
|
|
|
|
}
|
2024-05-23 01:31:32 -04:00
|
|
|
|
|
|
|
uint16_t inportw(uint16_t port) {
|
|
|
|
uint16_t result;
|
|
|
|
|
|
|
|
asm volatile ("in %%dx, %%ax"
|
|
|
|
: "=a" (result)
|
|
|
|
: "d" (port));
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|