操作系统与网络实现 之十六
来源:互联网 发布:神枪手交易软件 编辑:程序博客网 时间:2024/05/16 00:54
内嵌汇编
以后我们要和一些端口打交道,端口0xCF8是PCI的地址寄存器IO地址,端口0xCFC是PCI的数据寄存器IO地址,还有网卡端口。
要执行写入端口和从端口读出操作,在汇编中是这样实现的:
mov al,0x02
in 0xcf8,al
Linux下c语言内嵌汇编格式:
__asm__("<asm routine>" : output : input : modify);
output要用“=”开头
__asm__ 表示后面的代码为内嵌汇编,
寄存器前缀为%
寄存器缩写约定
a %eax/%ax/%al
d %edx/%dx/%dl
C语言是这样子:
unsignedchar readb(unsignedshort p ) //读字节8位
{
unsignedchar result ;
__asm__("in %%dx , %%al":"=a"( result ):"d"( p ));
return result ;
}
"result"前面的限制字符串是"=a",其中"="表示"result"是输出操作数,"a" 表示需要将"result"与ax(al)寄存器相关联,指令执行完后需要将寄存器中的值存入变量"result","d"( p )表示dx=p
- 操作系统与网络实现 之十六
- 操作系统与网络实现 之四
- 操作系统与网络实现 之五
- 操作系统与网络实现 之二
- 操作系统与网络实现 之六
- 操作系统与网络实现 之三
- 操作系统与网络实现 之七
- 操作系统与网络实现 之八
- 操作系统与网络实现 之九
- 操作系统与网络实现 之十
- 操作系统与网络实现 之十一
- 操作系统与网络实现 之十二
- 操作系统与网络实现 之十三
- 操作系统与网络实现 之十四
- 操作系统与网络实现 之十五
- 操作系统与网络实现 之十七
- 操作系统与网络实现 之十八(甲)
- 操作系统与网络实现 之十八(乙)
- dp和px、sp和px的相互转化的工具类
- 【codeofrces 722D】【贪心 STL维护】D. Generating Sets 【X集合的数 可以有两种方式变换Y 现在给你一个集合Y 求X 且这个X的里最大的数尽可能小】
- python中的try/except/else/finally语句
- springmvc 通过aop方式进行登录控制
- FPGA内部pattern生成 仅仅是时序方面
- 操作系统与网络实现 之十六
- fatal error: caffe/blob.hpp: No such file or directory的解决
- 正则表达式的用户名合法性
- BestCoder Roud #88 Find Q
- Problem A. Nearest Neighbor Search ——BNUOJ 点距离立方体最短
- java Arrays数组扩容 Arrays.copyOf(a, a.length+1)
- java io系列04之 管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例
- Real Time Messaging Protocol
- perl网络爬虫--举例(登录论坛eetop)