当前位置: 技术问答>linux和unix
linux 0.11内核port_read宏
来源: 互联网 发布时间:2016-09-01
本文导语: 在linux/kernel/blk_drv/hd.c中61行定义的port_read宏如下: #define port_read(port,buf,nr) __asm__("cld;rep;insw"::"d"(port),"D"(buf),"c"(nr):"cx",""di) 请问如何理解该宏函数定义呢? | 就是把port端口的nr个字(2 bytes)...
在linux/kernel/blk_drv/hd.c中61行定义的port_read宏如下:
#define port_read(port,buf,nr)
__asm__("cld;rep;insw"::"d"(port),"D"(buf),"c"(nr):"cx",""di)
请问如何理解该宏函数定义呢?
#define port_read(port,buf,nr)
__asm__("cld;rep;insw"::"d"(port),"D"(buf),"c"(nr):"cx",""di)
请问如何理解该宏函数定义呢?
|
就是把port端口的nr个字(2 bytes)读到buf缓冲区中
__asm__表示内嵌汇编,执行下面3条指令
cld
rep
insw
在执行这些指令的时候,port使用寄存器edi("d"),buf使用寄存器edx("D"),nr使用寄存器ecx("c")
__asm__表示内嵌汇编,执行下面3条指令
cld
rep
insw
在执行这些指令的时候,port使用寄存器edi("d"),buf使用寄存器edx("D"),nr使用寄存器ecx("c")
|
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。