免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3559 | 回复: 5
打印 上一主题 下一主题

请问能直接用C语言对8251编程吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-27 22:12 |只看该作者 |倒序浏览
10可用积分
对于x86架构而言,是不是再8086之后的8251全都是集成到了cpu的内部,只是端口没变。

那么我能直接用C语言对8251编程吗? 在Linux/Win上如果我想这样做,是需要调什么特殊的库,还是只能求助于汇编?

能解释一下么,最好举个简单的例子。谢谢!!!!!!!!!!!!!

最佳答案

查看完整内容

我仅在win32下玩过8042, 应该还是有不少地方是相通的。是可以不写一行汇编代码的, 但是要借助一些库。8042需要的是60、64端口, 具体的读写规则lz可以去搜, 我也记不太清楚了。读端口在x86上好像是这样的吧?in AL,64H ; 将64端口读到al中。但也可以不写汇编,msvc提供的crt中, 有conio.h这个头文件,提供了:_inp 、 _inpw 、 _inpd 、 用作读端口_outp 、 _outpw 、 _outpd、 用作写端口。所以在win32上, 读写端口是不用写 ...

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
2 [报告]
发表于 2009-07-27 22:12 |只看该作者

回复 #1 jeanlove 的帖子

原帖由 jeanlove 于 2009-7-27 22:12 发表
那么我能直接用C语言对8251编程吗? 在Linux/Win上如果我想这样做,是需要调什么特殊的库,还是只能求助于汇编?


我仅在win32下玩过8042, 应该还是有不少地方是相通的。
是可以不写一行汇编代码的, 但是要借助一些库。


8042需要的是60、64端口, 具体的读写规则lz可以去搜, 我也记不太清楚了。


读端口在x86上好像是这样的吧?
in AL,64H ; 将64端口读到al中。

但也可以不写汇编,msvc提供的crt中, 有conio.h这个头文件,提供了:
_inp 、 _inpw 、 _inpd 、 用作读端口
_outp 、 _outpw 、 _outpd、 用作写端口。

所以在win32上, 读写端口是不用写汇编的。linux上是否提供这些函数我就不知道了……



还需要注意的是, 在win98系列中, 端口“据说”是可以随便读写的(使用win98时不会编程,会编程时又不用win98……)。
而在winnt系列中, 端口是受保护的, 需要特定权限才能读写。

获得端口读写权限, 我不清楚具体要怎么做。 但可以求助于一个库"WinIO", 它可以帮助你获得读写端口的权限(其实该库还可以做别的一些事情)。
依然, 可以不用写汇编代码 ……



还有一个当时折磨过我的问题……
winio提供的.sys(用于Win XP) .vxd(用于Win98 ), 这2个文件一定要和.exe放在同目录下。
只放在Path或者system32下都是不行的。



PS:
lz你搞什么的……  研究范围有点小广……

[ 本帖最后由 OwnWaterloo 于 2009-7-28 11:13 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-07-28 12:32 |只看该作者
原帖由 OwnWaterloo 于 2009-7-28 11:10 发表


我仅在win32下玩过8042, 应该还是有不少地方是相通的。
是可以不写一行汇编代码的, 但是要借助一些库。


8042需要的是60、64端口, 具体的读写规则lz可以去搜, 我也记不太清楚了。


读端口在x8 ...

楼上的大人学识渊博,知识范围乃是大广啊... ...

我研究计算机,初学... ...

论坛徽章:
0
4 [报告]
发表于 2009-08-08 11:52 |只看该作者
哪里有8251 ?

论坛徽章:
0
5 [报告]
发表于 2009-08-08 17:30 |只看该作者
单片机不都是直接用c的么?

论坛徽章:
0
6 [报告]
发表于 2009-08-11 10:59 |只看该作者
操作系统包括linux和windows都提供给用户据直接操作端口的函数接口,其实现无非是汇编mov和in/out指令。单片机可以C语言实现,实际上也被汇编成这些指令了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP