IO端口输入输出数据
时间:2011-07-30
来源:互联网
我希望能够直接通过io端口读取磁盘块的数据,使用的工具是linux下的nasm编译器,运行的时候会出现segment fault,我不知是不是因为寄存器的原因,各位大侠帮忙拉,,,,偶是新手阿,代码如下
section .bss
buffer: resb 512
section .text
global _start
_start:
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
out dx,al
mov dx,1f4h ;要读入的柱面的低8位
mov al,0 ;柱面低8位为0
out dx,al
mov dx,1f5h ;柱面高2位
mov al,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
mov eax,buffer
mov edi,eax
1,6 Top
section .bss
buffer: resb 512
section .text
global _start
_start:
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
out dx,al
mov dx,1f4h ;要读入的柱面的低8位
mov al,0 ;柱面低8位为0
out dx,al
mov dx,1f5h ;柱面高2位
mov al,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
mov eax,buffer
mov edi,eax
1,6 Top
作者: henujava 发布时间: 2011-07-30
可能是我写的程序在linux下没有访问端口的权限,所以报错了
作者: henujava 发布时间: 2011-07-30
你在nt下也不行的
作者: mydo 发布时间: 2011-07-30
在虚拟机下练习吧。
作者: mydo 发布时间: 2011-07-30
R0下面才可以对某一些端口读写
作者: WJN92 发布时间: 2011-07-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28