当前位置:首页 » 编程软件 » 先汇编后编译

先汇编后编译

发布时间: 2023-09-22 03:59:36

编译后一定要汇编吗

这种事情从理论层面来说:不一定要与汇编语言有什么瓜葛。你完全可以让你的编译器直接编译成机器码。大部分C/C++编译器(不是所有的)之所以先编译成汇编语言,是为了解构。从C到汇编的“翻译”相对容易(都算是抽象语言,有语义的),同时汇编语言的编译器效率很高,可以生成质量非常高的机器码。所以两者结合,可以突出各自的优势,减少复杂度。
但是如果有必要,当然也可以直接编写产生机器码的编译器,实际上Java/C#这样的半编译语言和Js这样的脚本语言,都没有先转换成汇编的这一步。前者是因为强大的虚拟机技术,直接把字节码转换成机器码执行了,后者是灵活的解释器,实时把代码转换成机器码执行,而完全没有“编译”这一步(当然如果深究的话,出于性能考虑,很多高性能的解释器也会提前“预编译”一部分代码,但这是具体实现,不是宏观概念)。

㈡ 任何高级语言都是编译成汇编代码然后运行的吗

编译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能识别,运行的低级机器语言的程序。编译器将源程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源程序一般为高级语言(High-level language),如Pascal,C++等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。一个现代编译器的主要工作流程如下:
源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables])工作原理
翻译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器言)。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。典型的编译器输出是由包含入口点的名字和地址以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序。
肯定是要先编译成机器码,计算机才能识别。

㈢ 操作系统,汇编语言,编译原理,这三门课程学习步骤是什么 以及原因,求详细解释,非常感谢。

汇编语言、编译原理、操作系统吧

1.首先编译原理肯定要在汇编之后学的,你不会汇编编什么译
2.汇编语言肯定讲的是实模式的内容,学完了实模式对计算机内程序有个基本概念了,研究保护模式的时候就要涉及到操作系统了
3.至于编译原理我没学过,姑且认为应该也是实模式的内容吧,所以放到操作系统之前学习

㈣ 用汇编写的程序怎样进行编译

在windows下,你需要安装masm作为编译器,安装之后,在安装路径下运行masm 你的文件名.asm,没有语法错误的话,然后link 你的文件名.o,然后就会生成一个你的文件名.exe
你就可以运行了

㈤ 汇编程序是怎么编译的

汇编语言是一种低级语言,汇编语言是汇编指令集、伪指令集和使用它们规则的统称,使用具有一定含义的符号为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令。


过程:

  1. 编辑:用编辑软件(EDIT.EXE或记事本)形成源程序(.ASM)

  2. 汇编:用汇编程序(MASM.EXE)对源程序进行汇编,形成目标文件(.OBJ),格式如下:MASM LX.ASM;

  3. 连接:用连接程序(LINK.EXE)对目标程序进行连接,形成可执行文件(.EXE),格式如下:LINK LX.OBJ;

  4. 执行:如果结果在屏幕在显示,则直接执行可执行文件。

  5. 调试:用调试程序(LINK.EXE)对可执行文件进行调试,格式如下:DEBUG LX.EXE


汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。汇编程序(如MASM)的原理实际上就是把汇编的代码转成电脑可以识别的二进制码

㈥ 什么是编译程序和汇编程序

分类: 电脑/网络
问题描述:

什么是编译程序和汇编程序?他们有什么区别?和机器语言、高级语言汇编语言有什么样的联系

解析:

用汇编语言或高级语言编写的程序,必须先送入计算机,经过转换成用机器语言表示的目标程序(这个过程即编译),才能由计算机执行。执行转换过程的程序叫编译程序。汇编程序是指没有编译过的汇编语言源文件。

编译程序转换过的叫目标程序,也就是机器语言。

编译程序的工作情况有三种:汇编型、解释型和编译型。汇编型编稿册译程序用来将汇编语言编写的程序,按照一一对应的关系,转换郑斗成用机器语言表示的程序。解释型编译程序将高喊敬磨级语言程序的一个语句,先解释成为一组机器语言的指令,然后立即执行,执行完了,取下一组语句解释和执行,如此继续到完成一个程序为止。用解释型编译程序,执行速度很慢,但可以进行人和计算机的"对话",随时可以修改高级语言的程序。BASIC语言就是解释型高级语言。编译型编译程序将高级语言编写的程序,一次就会部翻译成机器语言表示的程序,而且过程进行很快,在过程中,不能进行人机对话修改。FORTRAN语言就是编译型高级语言。

㈦ C语言为什么要先编译成汇编语言

C语言,具有可移植性,或者说同样的代码可以在不同cpu平台上运行得到同样的结果
汇编语言,移植性差,一般针对某型cpu,每个类型的cpu都有自己的汇编语言
为保证C语言编制的通用算法的可移植性,比如我们用C编写了一套mp3解码算法程序,要在pc机上、手机上都能用,那么我们就采用通用的C编译器,将C语言程序编译成指定CPU的汇编语言,再汇编成机器可执行程序。
另一个用途是程序优化问题,在C语言层次,由于是高级语言,不涉及底层硬件,那么底层硬件的特性不能够得到充分利用,在需要优化算法的场合,我们需要将C语言算法编译生成汇编程序,然后修改需要优化的汇编程序达到目的。比如,你在手机上经常会遇到音频解码器,需要安装,而且不同的cpu需要选择不同的解码器,这些解码器应当就是在汇编层次上优化了算法的可执行代码,关键部分经过汇编级优化,不需要优化部分仍然使用C语言编译的结果。

热点内容
java跳出多重循环 发布:2024-11-18 22:52:28 浏览:56
传奇私服登录脚本 发布:2024-11-18 22:47:54 浏览:877
云服务器还用买电脑吗 发布:2024-11-18 22:42:44 浏览:666
算法开关门 发布:2024-11-18 22:37:09 浏览:477
u启动iso解压 发布:2024-11-18 22:22:03 浏览:885
oracle存储过程rollback 发布:2024-11-18 22:14:05 浏览:672
c语言学生管理系统课程设计 发布:2024-11-18 22:13:15 浏览:604
怎么在云服务器上挂机手机游戏 发布:2024-11-18 22:03:03 浏览:317
ppp拨号服务器搭建 发布:2024-11-18 22:02:59 浏览:586
幻灵游侠脚本 发布:2024-11-18 21:57:39 浏览:457