Сам недавно почав цим цікавитися...
Взагалі виявив такі способи:
- напряму виводити на порт за допомогою outb(data,port);
- написати драйвер для пристрою, створити пристрій і керувати ним за допомогою ioctl
перший дуже простий
int main(int argc, char *argv[])
{
int num = 4;
ioperm(0x378,1,1);
outb(num,0x378);
}