蓉杠学习网

数据结构与算法 c 语言,数据结构与算法c语言版电子书

大家好,今天小编关注到一个比较意思的话题,就是关于数据结构算法 c 语言问题,于是小编就整理了1个相关介绍数据结构与算法 c 语言的解答,让我们一起看看吧。

  1. C语言、汇编语言、机器指令、CPU之间是怎么联系起来的?

C语言、汇编语言机器指令、CPU之间是怎么联系起来的?

谢邀。

简单说说这几者的关联吧。

数据结构与算法 c 语言,数据结构与算法c语言版电子书div>
图片来源网络,侵删)

通常,C语言程序可被C编译器翻译汇编语言编写的汇编程序,汇编程序被汇编器翻译成可执行代码,而可执行代码主要包括机器指令及其使用的数据。

举例子吧:

C语言代码:

数据结构与算法 c 语言,数据结构与算法c语言版电子书
(图片来源网络,侵删)

可被C编译器翻译成汇编代码(以x86 CPU为例):

可以看出,第一行C代码被翻译成两行汇编代码,第二行C代码被翻译成一行汇编代码。C代码和汇编代码没有一一对应关系。

CPU的核心是运算器。

数据结构与算法 c 语言,数据结构与算法c语言版电子书
(图片来源网络,侵删)

数字电路教材中,讲过加法器,数据选择器,译码器,D触发器,移位寄存器。这些就是运算器的基本构成。

cpu只认识机器码,指令和数据都用机器码序列存储。pc指针指向当前代码就是下一步要执行的指令。

1 用机器码编程,就是初始程序设计方法

2 机器指令不好记,改用助记符如add类似的符号,好理解多了,这就出现汇编语言和汇编器。

3 还可以更接近数学描述,出现了中级语言b和c语言,有了编译器,有了面向过程的结构化程序设计方法。

4 处理字符和人机界面需要,进化出了一大批高级语言,有了面向对象方法。

5 人工智能的进步,有了初步面向问题方法,自然语言编程目前还很幼稚。

现在是4G,第四代语言时代。

机器语言 也就是我们看到的二进制指令,二进制指令在电路中代表高电平低电平。它是可以在CPU中直接进行运算的。而汇编语言是属于低级语言。他需要通过汇编器连接器将汇编代码转换为二进制机器语言。这个转换过程,我们称之为编译。同理,c语言也有它的编译器。编译器会将c语言代码编译成二进制机器语言。举个很形象的例子。我们和外国人打交道,有时候我们的语言水平可能跟他们正常沟通是有问题的,但是呢,如果中间有一个翻译人员,就可以通过翻译人员的翻译进行沟通。而这个翻译人员就相当于编程语言中的编译器。我们就相当于编程语言。这个外国人就相当于CPU。

CPU中包含无数微型cmos开关单元,由无数0或1的电信号控制输出0和1的信号,这就是机器语言。c语言转换成汇编语言,再转换成机器指令控制开关,开关输出的机器语言经逻辑门运算后控制各声光设备,输出结果

CPU的全称是中央处理单元,是计算机进行运算的核心,根据使用的技术不同,CPU又分为X86,X64,ARM、DSP、单片机等不同的体系结构。在每种CPU上都有一套特定的指令集,这就是人们常说的机器指令,直接使用机器指令编写的程序就是机器语言程序。

理论上来说,是可以通过机器语言直接编写任何程序的(早期都是直接使用机器语言编程,那时程序[_a***_]比较简单),并且编写的程序可以直接运行,但是使用机器语言编程对程序员要求极高,代码无法移植且不便于人直接阅读,于是人们发明了一组符号,用来表示这些机器指令,这就是汇编语言。汇编语言编写的程序计算机无法直接运行,需要一个叫做汇编器的程序转换为机器语言才可以在特定机器上运行。

而C语言是比汇编语言更高级的语言,使用C语言编写的程序也是无法在计算机上直接运行的,它需要编译器将C语言代码转换为机器语言,这个过程又分为几个子步骤,见下图

为了使题主的问题更加完善,在这里补充两个概念,链接器与反汇编。

在大型程序中,往往会将任务分解为许多不同的子任务,每个子任务对应一个源文件,在C语言中就是多个C文件,编译器将每个C文件编译成一个目标文件(一般Windows中是obj文件,Linux中是

.o

文件),这些目标文件也是机器指令,但是缺少一些必要的信息,无法直接运行,需要链接器将这些文件链接起来,再加上一些库文件与可执行文件头信息,成为一个可执行文件(Windows是PE格式,Linux是ELF格式)。

通常,在查看一个二进制文件时(目标文件或者可行性文件),不会直接显示机器指令,而是以汇编语言显示,这是因为此过程中有一个反汇编程序,将机器指令转换为汇编语言,它的功能刚好与汇编过程相反。

到此,以上就是小编对于数据结构与算法 c 语言的问题就介绍到这了,希望介绍关于数据结构与算法 c 语言的1点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/34240.html

分享:
扫描分享到社交APP