一个费解了我很长时间的问题,软件的最底层是什么?

2011-03-24 23:48:09 +08:00
 fim8
可能我的问题比较小白,但真的困扰了我好久,请教过老师,也无法得到答案。

操作系统正式控制硬件之前,是由BIOS负责所有的硬件接管。就在这一层上有不解的地方。

硬件究竟是如何和软件打上交道的,程序的最底层就是101010这样的机器码...对应着电流的开关。

有人说:“1表示A,01表示B,这个是规定好了的”,但这规矩是谁定的呢?可能多看看汇编会使我理解的更好一些。。
5879 次点击
所在节点    问与答
16 条回复
fim8
2011-03-24 23:50:35 +08:00
资料说:

汇编语言 → 机器语言( 0 ,1 ) → 机器识别 → 执行

至于0和1 是制造时就设计好的 通则是1 断则是0

那 汇编语言 又是怎么翻译成 机器语言的呢?这个翻译的工作是由什么程序来负责的呢。这个程序又是由什么程序来写的呢?

进到死循环了。。。。
levn
2011-03-25 00:19:24 +08:00
summic
2011-03-25 00:34:19 +08:00
这个可以问问 @Sainias 同学,她在电路板上用些开关、led屏、二极管等等做过一个计算器
obiwong
2011-03-25 00:34:51 +08:00
@fim8 软件的最底层是硬件。

第一个汇编器是人纯手工用0101写的。也就是说第一台汇编器是人的大脑。
cloudbeyond
2011-03-25 00:50:09 +08:00
靠着仅有的数字电路跟汇编知识回答一下,估计不太准确,但是差不多,欢迎高手拍砖~
编程语言按照等级大概能分成2种,低级语言跟高级语言,汇编是低级语言,C/C++等等都是高级语言。
他们写出来的程序最后能被机器执行,都是要转换成机器语言的就是 0跟1,这个过程会需要一个叫编译器的东西来帮忙实现,每种语言都有他自己的编译器,汇编语言也是如此,写完汇编程序是需要编译一下的,编译器会把你的程序翻译成 01代码,然后再执行。
基本就是这个过程了。编译器一般就是汇编,C写出来的。
Leo
2011-03-25 00:51:23 +08:00
就好比宇宙起源的问题一样,越想越纠结。
时常感叹人类的伟大,从电路板开关到华丽通人性的界面操作,是个不可思议美妙的过程。
chone
2011-03-25 01:05:00 +08:00
如果在没有汇编语言翻译器(语言处理程序,后面为了避免混乱成为编译器)的情况下,当然是用下层的机器语言来写汇编程序。然后如果已经有了能够把汇编语言转换为机器码的编译器,你也可以用汇编语言来写新的编译器。关键的是只用机器码才能被硬件识别和执行,不管什么样的形式什么样的语言最终都要通过各种不同的编译器将这些代码转换为机器码。
要注意的是汇编语言虽然是机器语言的符号语言,但是他并不是一个一定要经过的层次,从某种程度上他和其他的高级语言是属于同一个层级的,所以即使不用汇编语言,只要是能操作底层硬件的语言都能和汇编语言一样用来写操作系统(比如linux用的就是c语言)。
Weakdancer
2011-03-25 02:01:38 +08:00
推荐《编码的奥密》,另外有条件的话动手diy点东西(电子控制)的同时进行学习是最好的,当你没有亲自尝试过的时候一切都看上去是无法理解的。
momo5269
2011-03-25 02:01:42 +08:00
@chone 非常感谢的说
sinxccc
2011-03-25 03:40:51 +08:00
同推荐 "Code" http://book.douban.com/subject/1494026/

这本书可以解开你帖子里的所有疑惑。
9hills
2011-03-25 09:21:14 +08:00
这样的话lz不要去看汇编,而要看计算机组成原理。。
skymountain
2011-03-25 09:29:45 +08:00
老实说,问这种问题,说明你对计算机还完全没有理解。
没入门的人,或者老老实实去看基础书籍,或者干脆不要想这些东西,没意义的。
nikejaycn
2011-03-25 10:54:58 +08:00
学习了,话说我也不大懂。
fim8
2011-03-25 12:26:13 +08:00
好的,谢谢大家。
fim8
2011-03-25 12:33:24 +08:00
@levn 谢谢,这个我大致看懂了,CPU的工艺真强悍。压缩成这么小的一块。。
lesscome
2011-03-25 13:09:53 +08:00
@Weakdancer 《编码的奥密》+1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/10359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX