一、为什么高级语言要先编译成汇编再转换成机器语言?
1)其中有一个好处是方便优化和调试,因为编译器也是工具,也是机器,毕竟是机器生成的程序,不可以非常完美的,而汇编是机器指令的助记 符,一个汇编指令就对应一条机器指令(特殊指令除外),调试起来肯定会比机器指令方便的方便,这样优化起来也方便。
2)高级语言只需要编译成汇编代码就可以了,汇编代码到机器码的转换是由硬件实现即可,有必要用软件实现这样分层可以有效地减弱编译器编写的复杂性,提高了效率.就像网络通 讯的实现需要分成很多层一样,主要目的就是为了从人脑可分析的粒度来减弱复杂性。
3)如果把高级语言的源代码直接编译成机器码的话,那要做高级语言到机器码之间的映射,如果这样做的话,每个写编译器的都必须熟练机器码。
二、C语言为什么要先编译成汇编语言?
因为电脑等机器不认识C语言,所以C语言编写的程序需要编译为机器认识的语言才能正常运行,而汇编语言就是机器所认识的。
三、keil无法编译汇编语言?
C和汇编的混合编程没做过 但对于TH0、TL0、P1.0这些,你可以是直接用绝对地址代替它们试试
四、为什么说用高级语言写的程序,执行效率没有汇编高?这些高级语言不都是要先编译成汇编语言吗?
高级语言主要是给人看的,即使实现的目的完全相同,不同的程序员写出来的高级语言都很可能会看起来完全不同,因此编译器在把高级语言编译为机器码的过程中,就难免会产生很多的冗余代码,比如在汇编语言中从a点到b点能够一步到达的,在高级语言编译的代码中却有可能满世界乱转把整个字母表都走一遭后才到达b,尽管结果看起来是一样的,但效率就不可同日而语了。当然了,像js之类的脚本语言也是高级语言啊,它们是解析执行的,效率当然更加没有汇编语言高了。
五、高级语言执行编译方式是什?高级语言执行编译?
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可
将它们分为两类:
1.解释类
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序,典型的解释型的高级语言有BASIC。
2.编译类
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Delphi等。
六、如何对汇编语言进行编译?
用汇编语言进行编译的操作过程如下: (1)使用任意一种文本编辑器输入事先已手工编写好的汇编语言源程序,并将其存储为扩展名为.ASM的文件;
(2)使用汇编程序(ASM、MASM或TASM)对.ASM文件进行汇编,即对.ASM文件进行语法检查,在没有语法错误的情况下将其汇编成.OBJ文件。
(3)通过连接程序(LINK)将.OBJ文件连接装配成可在计算机上直接运行的可执行文件.EXE。
七、高级汇编语言用处?
汇编语言是最接近于机器语言的编程语言。如果说机器语言是计算机操作的本质,那么汇编语言就是最最接近本质的语言。汇编语言操作直接面向硬件。所以我们在使用汇编语言的时候,我们能够感知计算机的运行过程和原理,从而能够对计算机硬件和应用程序之间的联系和交互形成一个清晰的认识。
这也是最能够锻炼编程者编程思维逻辑的,只有这样,学习者才能形成一个软、硬兼备的编程知识体系,这是任何高级语言都无法给予的,相对于繁复的高级语言,汇编语言指令集合更简约,指令操作更直接,从汇编开始学习更符合循序渐进的学习原理。
八、汇编语言属于高级语言吗?
汇编语言不是高级程序设计语言,属于低级语言。
汇编语言是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
九、汇编语言用什么编译器?
汇编语言通常使用汇编器来编译,汇编器是一种特殊的编译器,它可以将汇编语言翻译成机器语言,以便计算机能够理解和执行。
十、c语言先编译还是先组建?
1、C语言编写的程序称为源程序,又称为编译单位。
2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。
3、一个C语言程序有且只有一个main函数,是程序运行的起点。
4、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---à.obj---à.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。


- 相关评论
- 我要评论
-