Wenn ich z.b. 0x00 senden will, dann ist das doch ein byte, oder?
Geht das?:
unsigned char inb(unsigned int);
void outb(unsigned int, unsigned char);
unsigned char secound;
void main(void)
{
outp(0x70, 0x00);
secound = inp(0x71);
}
unsigned char inb(unsigned int _port)
{
unsigned char result;
asm volatile ("inb %%dx, %%al" : "=a" (result) : "d" (_port) );
return result;
};
void outb(unsigned int _port, unsigned char _value)
{
asm volatile ("outb %%al, %%dx" : : "d" (_port), "a" (_value));
};
? Oder hab ich was falsch verstanden?
Edit: Warum nehm ich net gleich long, dann brauch ich keine 3 funktioonen?