I would like to use it that way :
inb %cl, %al
But I get :
idt_asm.S:43: Error: operand type mismatch for `in'
Is it even possible ?
No, the instruction is not that general.
See this reference page for the supported argument forms.
Basically, for bytes (inb
) there are two forms:
inb imm8, al
inb dx, al
So the destination is always al
, and the source is either immediate or taken from dx
.