汇编语言编译出来的指令,计算机是直接执行还是要翻译汇编指令执行?

来源:百度知道 编辑:UC知道 时间:2024/06/01 11:50:29
汇编语言编译出来的应该是最底层的机器码吧?换句话说,汇编语言只是把0和1的序列批了一层皮。但是有人却说汇编语言的效率比机器码低??难道说,汇编语言不光在转换成机器码时需要编译,就连执行编译后的机器码也要计算机翻译?
“转换成机器码之后执行起来当然跟机器语言一样了,关键就是它需要把汇编助记符转换成机器码,就是这个转换而造成的它没有机器语言执行的效率高 ”

但是“汇编助记符转换成机器码”这个过程只发生在编译阶段,而最终结果则应该是最底层的机器码吧。
这样的话,除非纯机器码里有比汇编指令更底层灵活的指令串,才能说机器码的效率比汇编高吧?

比如高级语言效率之所以比汇编低,原因是因为高级语言没有汇编底层灵活。
如果要说机器语言比汇编效率高,也必须满足 机器语言比汇编更灵活。

但实际上,我个人认为汇编只是用简单的符号代替了 二进制串 而已吧?
那汇编又怎么会比纯机器码效率低?

汇编语言可以说是编程人员与计算机之间的一种接口,通过汇编语言的编译,然后在计算机运行是在将这些汇编语言转换成机器码,在执行编译后的机器码是计算机不需要在翻译,因为计算机已经执行的是机器码。

过程如下:
1、编辑:用编辑软件(EDIT.EXE或记事本)形成源程序(.ASM),如:LX.ASM;
2、汇编:用汇编程序(MASM.EXE)对源程序进行汇编,形成目标文件(.OBJ),格式如下:MASM LX.ASM;
3、连接:用连接程序(LINK.EXE)对目标程序进行连接,形成可执行文件(.EXE),格式如下:LINK LX.OBJ;
4、执行:如果结果在屏幕在显示,则直接执行可执行文件。
5、调试:用调试程序(DEBUG.EXE)对可执行文件进行调试,格式如下:DEBUG LX.EXE

现在有集成汇编工具(visualasm),可视化环境,比较好用。下载地址为:http://www.onlinedown.net/soft/2002.htm

转换成机器码之后执行起来当然跟机器语言一样了,关键就是它需要把汇编助记符转换成机器码,就是这个转换而造成的它没有机器语言执行的效率高

是通过编译。变成机器码在执行。
不是直接执行