高级和低级编程语言之间的关系

时间:2015-10-07 22:48:09

标签: c++ assembly

低级和高级编程语言是如何相互关联的?例如,汇编语言和C ++在不同级别工作,但这些级别之间存在什么样的逻辑?让我们写一个Hello World!用C ++编写的程序,我编译并运行它。为了在汇编程序级别上提高代码效率,我需要关心什么?

1 个答案:

答案 0 :(得分:1)

你去五金店,你可以找到梁和板和钉子和螺钉和砖和砂浆和各种基本建筑材料。这些材料的组合可以建造狗屋,人民住宅,办公楼,人行道,道路,邮箱等。

C / C ++是房子,邮箱,存储棚。砖块,木板和钉子是机器语言。 “砖和钉”这个词是汇编语言,它描述并与材料的单个实例具有一对一的关系。

当您选择一行高级代码时

a = b + c;

你不能以那种形式运行,甚至不能解释,因为解释器本身是一个由较小的部分组成的程序。编译器可以是人工操作或从其他程序演化而来的程序,用于解释该行高级代码,为每个变量分配寄存器或存储器,并从指令集和命令中的可用指令中选择这些指令用于创建处理器可以理解的程序,执行相同的功能任务。将这个问题提供给100个人,你可能会得到1到100种不同的解决方案,总有不止一种方法可以在处理器理解的指令集中具有与高级程序等效的功能。

汇编语言理想情况下只是该处理器指令集的人类可读写形式,因此我们不必盯着机器代码的位和字节。汇编程序是一个更简单的程序,它将汇编语言助记符转换为机器代码,理想情况下是一个asm指令到一个机器指令,但汇编程序可能会添加其他功能,使得手工编程任务(甚至编译器生成的asm)更容易在人

"逻辑"在这些级别之间是其他程序,称为编译器,汇编器和链接器,它们可以转换为#34;将高级程序转换为低级别的功能等效程序。处理器只能实际执行低电平。高级源代码只是一大堆数据,与处理器中的书籍,网页,音频文件,视频等无异,如果没有可以解析该数据的母语程序,它就无法理解。