admin管理员组文章数量:1516870
之前写的一篇文章里设计到DOS下读写硬盘信心,之后经过仔细验证发现,IDE的访问方式和AHCI的访问方式完全不一样,因而前文提到的兼容IDE与AHCI是不对的。我之前之所以认为二者可以做到兼容,是因为AHCI技术刚出来的时候,IDE模式下的硬盘兼容了AHCI模式,也就是用IDE的方式来模拟AHCI的功能,因而那时候的AHCI其本质仍然是IDE,所以可以通过访问IDE硬盘的方式来访问AHCI模式下的硬盘,所以我那台很老的笔记本选择AHCI模式的时候我依然可以用IDE的方式来访问。后来的AHCI模式则脱离了IDE模式,但是AHCI模式可以兼容IDE模式,所以在新机器上验证我的工具时,就访问不了AHCI模式的硬盘。
AHCI与IDE的主要区别是,IDE模式的硬盘可以往IO端口下命令来访问,而AHCI模式下的硬盘则不能使用单个的命令来访问,它使用的是数据包的方式。
当然二者都依然可以使用扩展int 13h来访问硬盘,不过这只能获取部分硬盘参数,而不能获取全部的硬盘信息,至于扩展int 13h具备哪些功能,你可以Google一下,此处不再浪费笔墨。
有一点要注意,使用中断的时候,会牵涉你所使用的编译器。不同的编译器对于中断的处理是不一样的,当然这不仅仅是指编译器的API。因为对于某些中断而言,在保护模式下是不能使用的,它们只能在实模式下能使用,比如int 13H。
DOS本身是16位的实模式,当然可以通过打开A10 gate来进入保护模式。代码如下:
版权声明:本文标题:AHCI和IDE到底啥差别?还有DOS环境下的读取方法,一次说清! 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1771548451a3266773.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论