outb_p意思是把value值写到端口port上,并延迟
源码的函数如下:
#define outb_p(value,port)
__asm__ ("outb %%al,%%dxn"
"tjmp 1fn"
"1:tjmp 1fn"
"1:"::"a" (value),"d" (port))
容易理解的代码如下:
#define outb_p(value,port) _outb_p((unsigned char)(value),(unsigned short)(port))
_inline void _outb_p(unsigned char value, unsigned short port)
{
_asm mov al,value
_asm mov dx,port
_asm out dx,al
_asm jmp l1
_asm l1: jmp l2
_asm l2:
}
查看汇编容易理解out是al持有的数据写入dx的端口上,两个jmp用于时间延迟



