浏览 4831 次
锁定老帖子 主题:汇编与C
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-29  
C
汇编与C
C语言的本质是一种描述性的文本(语言),与机器无关.这种语言首先提供了一些表达式,用于描述流程和操作.另外为了更方便的操作,还提供了一些结构(数据类型).
而机器(CPU)的本质是一个模型或者架构,这个模型最关键的部分是为了达到目的设计了一套指令,这些指令提供了对数据操作和控制流程的能力,然后,为了使指令能够很好的运行,就有了配套的运算器,寄存器及流水线等.
从语言上来说C和这些指令并不是对应的,这不奇怪因为机器不是为C设计的(java芯片为java语言设计).但是C和机器的定义是很接近的.对机器而言,除了C语言的复杂数据类型及其操作,对C而言,则是机器中的一些特殊模式,如CPU工作模式,中断等. 大部分C语言可以通过机器语言几乎一一对应的表达.这也不奇怪,原因是C语言是按早期的机器模型设计的,而现代这种模型仍在新型机器中发挥作用.
而对于机器架构的特殊功能(非运算和 流程),则需要用汇编来表达,并通过C与汇编的调用接口来实现.
由此引发的一个思考是:为什么很早以前的机器模型没有革命性的进展?为什么没有能够直接解决问题的机器模型?
这个思考的答案,我可以部分的给出来,那就是数学,数学是人类解决实际问题的唯一手段,而数学是将问题分层次来解决的,复杂的计算最后还是要表现为最基本的运算.
同样的问题是:为什么我们现在还在用孙子兵法?
如果说有存在一个造物主的话,他为人类设定了这些,所有无论过多长时间,人类始终在一个框框中生活.
   发表时间:2007-01-29  
CPU工作模式,中断可以在C中使用?我怎么不知道?我只知道C中有个SigHandler可以处理信号,好像还是Unix-Specific的
0 请登录后投票
   发表时间:2007-08-31  
为什么很早以前的机器模型没有革命性的进展?为什么没有能够直接解决问题的机器模型?
-----------
好像整个基础科学在上个世纪50年代之后也有没有任何大的发展吧?
直接解决问题的机器模型,估计就只有人工智能或者大脑里集成芯片了,两者的技术基础都还不够,而且谁也说不准真的出来了会引起什么后果,还是晚个几十年再出来吧.
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics