硬件编程

我学了好久编程了,现在很痛苦,也很气愤.
一开始我就想用代码自由控制电子设备,所以下工夫学编程.买了本书是教C的入门,后面又转入C++,不管怎么样就跟着学了.学完发现C++和电子硬件没啥关系,这个懊恼.
后来知道了有汇编语言,兴奋的找来教程,粗略的看了一下,发现它就只跟CPU干上了,那教程最后要用汇编建立一个C语言编译环境,这给我气的.

我只是想能控制电脑的各种硬件,比如光驱 硬盘 声卡 显示器 BIOS之类的.
谁能告诉我下怎么做,或者是我去学什么.

那你就学linux或windows 驱动编程,但不会有人告诉你这个硬件那个硬件的工作原理和控制方法。除了已有的源代码,想了解更多的就自己反汇编,汇编这时候就有用。写驱动,用c语言,c语言这时候就有用。如果用类方式来写,c++这时候就有用。设计文件系统要懂更多的理论,谁说学了这些没用?

应该从小事做起。比如bios中断10的工作原理,你知道吗?别人就是一句一句的去读反汇编的代码,没有经年的时间,不会成为高手。如何用ioctl去控制硬件,估计你现在也做不到。cpu io的工作秘密,隐藏在成千零散的资料里,不学点外文你又怎么知道?

要提高,非得有目的的编程不可,非得系统的学习不可,指望这里baidu一点,那里baidu一点,不会有多大进步。追问

编写linux的那小子,在编操作系统之前就可以为硬件编写驱动了,好象是网卡和光驱的(还是软驱).
而且他编linux的时候就参考了3本书吧,他就把linux的构架编出来了.
他的linux是不是抄别人代码编出来的,要不怎那么容易.

我的理解是通过CPU指令完全可以控制所有硬件,是吧.

追答

这个容易是对极少数人来说的,你现在的水平还无法了解这方面的困难。

书上介绍的8086指令只是很基本的,像写操作系统的系统指令一般的书籍就极少涉足。

如果你确定有兴趣写这方面的代码,我建议你还是先选择一个方向,windows或linux,从最基本的api编程学起,一步一步往下走。

追问

虽然还想问你些东西,但还是算了,我已经有方向了,谢谢你.
我不会去学API编程的,API使用简单,但它有很多参数.要记住几十个API函数和参数,对我来说还真是个不小的工作量.
-_- (主要原因我不想说,不是我懒,怕困难什么的 )

老大,最后还有什么要教导我吗 (对于我上面那句不想学API的话)

追答

好啊,由自己作主是最好的。祝你成功!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-24
能控制电脑各种硬件,假如你只是标准的使用方法,比如开关光驱,读取光盘数据,或是控制声卡发出声音等的话,在你已经学习了C/C++后这些都简单了,我们为什么要用操作系统,就是因为操作系统将最底层的驱动写好了,你只需要调用操作系统留给我们的API函数或是其他的库函数,在此给你举个例子,你想控制光驱的开关,那么你可以用C语言,也可以用VB,也可以用汇编,也可以用c#,也可以用C++,那么你会选哪个语言作为你的编程语言呢?如果你的C++基础够硬,那么选择C++是最好的方法,而如果 你的编程能力还有限,就请选择VB,VB的操作方式会让你感觉很轻松,写代码量很少,当你熟悉操作方法后,估计你就不会问这种问题了,编程不在于用什么语言,而在于结果。希望能帮到 你。
第2个回答  2011-04-24
一般是用C语言写的
驱动可不是想写就能写出来,要对C语言、汇编、硬件十分了解才行,三两下是写不出来的。
第3个回答  2011-04-24
学了是有用的。
要看你想控制硬件的程度来决定学多深。
系统化的学习是必要的。
电脑这东西不是一朝一夕的。
希望对你的目标和编程的学习有个重新的认识!
第4个回答  2018-11-27
编程是个统称。
总的来说,编程的定义就是通过专门的语法结构组成指令去完成一个目标。