• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 硬盘控制器0x170-0x17f端口的详细说明

硬盘控制器0x170-0x17f端口的详细说明

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了硬盘控制器,固态硬盘控制器,硬盘控制器驱动损坏,硬盘控制器驱动下载,硬盘控制电路板等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 硬盘控制器0x170-0x17f端口的详细说明
描述:

最近想写一个在dos下的磁盘格式化软件,但不了解硬盘控制器0x170-0x17f端口的使用,请各位提供相关资料.


解决方案1:

一个通过对硬盘输入输出端口操作来读写硬盘的实例
让我们来看一个关于INT13H读写硬盘程序实例。在例子中详细说明了硬盘的读写操作所用到的端口,并且把通过INT13H读出的主引导区得到的数据和通过输入输出读主引导区得到的数据进行比较,从而证实这两种操作功能相同,程序片段如下:
mov     dx,1f6h         ; 要读入的磁盘号及磁头号
mov     al,0a0h         ;磁盘0,磁头0   
out      dx,al
mov     dx,1f2h         ;要读入的扇区数量
mov     al,1            ;读一个扇区    
out      dx,al 
mov     dx,1f3h         ;要读的扇区号 
mov     al,1            ;扇区号为1
out      dx,al
mov     dx,1f4h         ;要读的柱面的低8位
mov     al,0            ; 柱面低8位为0 
out     dx,al
mov     dx,1f5h         ; 柱面高2位  
mov     al,0            ; 柱面高2位为0(通过1F4H和1F5H端口我们可以确定
; 用来读的柱面号是0)
out      dx,al
mov     dx,1f7h         ;命令端口
mov     al,20h          ; 尝试读取扇区
out      dx,al
still_going:
in      al,dx
test     al,8            ;扇区缓冲是否准备好
jz     still_going     ;如果扇区缓冲没有准备好的话则跳转,直到准备好才向下执行。
mov     cx,512/2        ;设置循环次数(512/2次)
mov     di,offset buffer
mov     dx,1f0h         ;将要传输的一个字节的数据
rep      insw            ;传输数据
;   ------
mov     ax,201h         ;以下是用INT13H读硬盘的0磁头、0柱面、1扇区
mov     dx,80h
mov     cx,1
mov     bx,offset buffer2
int       13h
mov     cx,512         ;以下部分用来比较2种方法读出的硬盘数据
mov     si,offset buffer
mov     di,offset buffer2
repe     cmpsb
jne      failure
mov     ah,9
mov     dx,offset readmsg
int      21h
jmp     good_exit
failure:
mov     ah,9
mov     dx,offset failmsg
int       21h
good_exit:              ;以下部分用来结束程序
mov      ax,4c00h        ;退出程序
int      21h
readmsg db      'The buffers match.  Hard disk read using ports.$'
failmsg db      'The buffers do not match.$'
buffer  db      512 dup ('V')
buffer2 db      512 dup ('L')


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 硬盘控制器0x170-0x17f端口的详细说明
  • 一个硬盘控制器在系统启动时候,到底要提供那些信息给BIOS程序,这些信息放置在内存什么位置?

相关文章

  • 2017-06-05 quartusII怎样知道破解成功
  • 2017-06-05 关于温湿度变送器数据接收问题
  • 2017-06-05 脉冲分离问题
  • 2017-06-05 新新手求指导pic18系列单片机问题~求高手指导
  • 2017-06-05 高通8916boot哪里查看分区信息?
  • 2017-06-05 rewrite_by_lua更改变量值,对应nginx变量值无变化
  • 2017-06-05 windows开机密码为什么可以绕过,求详细原理
  • 2017-06-05 高手请进:vxworks中如何在路由之前截获IP报文?
  • 2017-06-05 请问内核怎样通知应用层
  • 2017-06-05 WEB服务器照书上打的程序,有点问题,大家帮我看看吧

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 请教各位大神WiFi模块选型的问题
    • 服务器中DNS的问题
    • labiew的visa驱动装不上,点击安装包显示“停止工作”。坐等大师。。。。。
    • stlinkv2制作成功,开源所有资料,包括固件,制作过程
    • sdram只能读取到最后写入的数据
    • vxworks启动中的BOOT_LINE是什么东西?
    • vxworks68使用shell命令sysReboot会有延迟
    • 哪里能买到开发版的摄像头一体机
    • 接口技术与硬件设计片内外设
    • vxworks68/69怎么配置FTPServer

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有