catch 发表于 2013-6-3 21:57:55

I/O操作函数inb, outb, inw, outw

本帖最后由 catch 于 2013-6-3 21:59 编辑

设备和芯片的I/O端口操作实现,其实没有复杂的东西在里边 ;
I/O端口操作主要是看一堆文档,把整个X86架构的PC机所有I/O端口记住, ;

并记住它们每一个数据寄存器、命令寄存器等操作访问标准(也可以称之协议) ;

记住之后,整个过程中就是按标准使用I/O指令: ;

in, out(只能与DX,AX,AL寄存器结合使用) ;

下面的实现是提供给C使用,因为不太喜欢GNU的inline asm,语法太 ;

晦涩,所以直接使用汇编实现。

inb 从I/O端口读取一个字节(BYTE, HALF-WORD) ;

outb 向I/O端口写入一个字节(BYTE, HALF-WORD) ;

inw 从I/O端口读取一个字(WORD,即两个字节) ;

outw 向I/O端口写入一个字(WORD,即两个字节) ;

byte inb(word port); ;

word inw(word port); ;

void outb(word port, byte value); ;

void outw(word port, word value); ;

catch 发表于 2013-7-14 22:59:47

支持一下~{:1_1:}

古来圣贤皆寂寞 发表于 2013-7-25 22:49:11

59                  没咋看懂,不过希望以后能和大家在鱼C里一起学习!!

古来圣贤皆寂寞 发表于 2013-7-26 22:39:24

   5                  没咋看懂,不过希望以后能和大家在鱼C里一起学习!!

2004222 发表于 2014-2-4 16:11:34

这是我见过的最好的论坛!
页: [1]
查看完整版本: I/O操作函数inb, outb, inw, outw