C语言是如何控制硬件的?

麻烦编一个简单的例子

首先,以下写的东西不是复制粘贴,我会给你详细的介绍、

1,要知道,计算机的发展规律是离硬件越来越远,离人类的自然语言越来越近。为什么这么说呢。
计算机语言的发展是:机器语言,汇编语言,高级语言,第四代语言,和自然语言。。
对于机器语言,只能识别二进制。而二进制就是0和1.0和1代表的是开关。比如1代表关闭,0代表打开。那么每一台进算计的开关都不一样,也就是硬件都不一样,所以机器语言没有移植性。
对于汇编语言,就是把机器语言用助记符来代替。比如,机器语言,如果是个8位的,11001010,都很难记。更别说16位的了。那么用助记符来代替他们,会容易些。比如用add,表示加,那么不用记那么长的数了。其他的两者并没有什么太大的区别。也没有移植性。
对于高级语言,就是C语言,他具有很强的可移植性。因为他有专门的编译器。可以把C语言编译成机器语言。所以对于高级语言,只有在编译的时候才去操宗硬件。
比如:
#include<stdio.h>
void main()
{
int a;
a=20;
printf("a=%d\n",a);
}
这里,定义一个a是一个整型,那么硬件就分配给他4个字节或者8个字节(不同的软件不一样),那么这个就是一个硬件操纵。当然只有在编译的时候才对硬件进行操纵。
这也说明其可移植性强。因为对每一台电脑都可以这样下指令的。
再往后的第四代语言,就是面向问题的语言了。就是指需要告诉电脑需要怎么做,不需要告诉电脑应该怎么做,离硬件更远了。因为你只需要让a等于20,但不需要告诉电脑分配给a几个字节,电脑自己会搞定的。
对于自然语言就是人类自己的语言了,更不需要操纵硬件了。
其实C语言可是说是一种中级语言,既有汇编的优势,也有高级语言的优势。
像我学的单片机,用C控制流水灯的亮灭。就是直接通过C的操纵单片机的P1口引脚来进行的。有空你可以了解下。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-09-16
如果是电脑程序的话,譬如你在vc6.0里面c语言里面编写一个程序,那么vc6里面的编译器会把你的c语言语句按照对应的关系翻译成你计算机能识别的计算机语句,然后你电脑cpu会按照这些指令来控制你的硬盘,内存读写之类的硬件操作
如果是单片机之类的话,譬如你在keil里面用c语言编写了一个单片机程序,那么keil的编译器会把你的c语言程序编写成汇编语言程序文件,然后把那个汇编程序文件烧到单片机芯片上就可以让芯片按照指令工作了本回答被网友采纳
第2个回答  2010-11-18
c就是控制硬件的
第3个回答  2012-11-01
楼上解答很不错。。。

C语言是如何控制硬件的?
4.首先,概念性错误,编译器并不执行程序,执行程序的是你的系统。编译器只是实现了高级语言向机器语言的转化而已。至于计算机的工作原理,这个概念也太泛了,有硬件层也有软件层。硬件层基本也就是80x86的汇编和内存管理,软件层也就是操作系统了,请问你想知道什么?5.a是数组名,最重要的是a是一个...

计算机中软件如何控制硬件工作?
简单来说,就是C语言会被编译成机器语言,由CPU I\/O口输入,CPU其实只是做二进制加法运算。它本身不会去处理任何程序。通过基本的加法运算,将结果反馈会程序,程序通过这个值去控制其他硬件。你可以看到芯片其实有各种引脚,有些是8个一组的I\/O,有些是控制中断器,有些是计时器,电脑给引脚正电平...

C语言竟是如何调用硬件
如果把硬件平台限制在x86环境下,那么汇编指令操作硬件基本上只有两种方式: 方式一: 通过向内存空间写数据。硬件会把硬件上的各种寄存器(外行可以理解为访问硬件的接口或者操作硬件的工具)映射到某一块内存地址空间上,之后只要用汇编指令,甚至C语言去读写这一段内存地址空间(并非真正操作物理内存),就可以达到操作硬件的...

为什么汇编和C语言可以直接控制硬件
汇编和C都要经过编译处理转化成机器语言才能控制硬件,而机器语言就是用0和1组成的代码,表示高低电平,硬件识别的是高低电平,所以汇编语言和C并不是能直接控制硬件,还要经过编译处理的。对了,当然和CPU的指令集有关了,不同的cpu的指令集稍微会有所差异,但是都会给出与一般的CPU的不同指令的资料。

c语言可以直接对硬件操作吗
但是门、升降机离我们所写的C语言很远,可能有时会远到看不见,但不管这些器件或者硬件离得有多远,它们都还得听我们C语言的话不是?C语言可以直接控制这些数字芯片的I\/O口,这众多的I\/O口,就是外围终端的控制总部,所以你得分情况看你说的是直接对哪种硬件操作。我也说不准这是直接还是间接。

汇编语言编程几乎不能移植,而C\/C++等就容易移植 有点搞不明白?
汇编语言,和机器语言一样,是直接控制硬件的。每种CPU,都有自己的机器语言,所以汇编不能移植。C语言,并不直接控制硬件。在不同的机器上,有相应的编译软件,可以把C,编译成自己系统的机器语言。容易移植的关键:C语言是不直接控制硬件的。

c语言怎么进行硬件编程
C语言确实是有汇编的特点,但不能对硬件直接进行操作. 必须通过编译和连接后产生(.EXE)文件才可以间接操作系统.理论上是C语言编辑---编译---连接---这几个步骤后生成机械指令(这里指二进制指令)才可以间接操作系统.显示器,打印机,硬盘,键盘都是通过:C语言编写的驱动程序再调用设备的.还有别的问题吗...

C语言控制单片机的详细原理是怎样的?
所谓的单片机C语言的意思是拿C语言来编写单片机程序,没有什么C语言控制单片机这回说法。具体过程是:C语言源程序通过特定的C编译器编译为针对某种单片机的汇编代码,再由汇编器将汇编代码汇编为单片机可执行的机器代码,然后下载到单片机的存储器运行。当前一般的集成开发环境(如Keil C)可以一次搞定生成机器...

操作系统是如何控制硬件的?
二进制代码在机器里面其实使用电压的高低来表示的电压高代表1电压低代表0。有了这些知识后你再来看你提问的问题,你说在操作系统执行关机命令的时候,软件是怎么控制硬件断电的,其实在你点击关机按钮的时候,就是给操作系统发了一个命令,在计算机内部的表示形式也就是在你的点击下,里面产生了一组高低...

为什么说C语言是直接对硬件操作的语言?
其次是汇编语言,汇编语言稍微向英语迈进了一点,但是很有限,一般人也看不明白的,比如这句 mov a,b 谁知道什么意思!其操纵硬件能力也极强,随心所欲,执行效率基本也是百分之百。而C语言介于高级和低级之间,代码容易理解,还可以用指针操纵硬件(不过还是很局限的,CPU就无法之间操纵了),执行效率为80...

相似回答