编译器汇编器
Ⅰ 程序的编译汇编
如何被编译的呢?
其实计算机只能识别和执行的就是0.1
编译出来的的也都是机器码 既0或1
怎么是操作系统呢 他是根据cpu而编译的
不同的CPU 都有不同的指令集
所以不同的cpu 就要选用不同的 编译器了
编译器本身又是程序,操作系统的运行又是靠什么编译的呢?
操作系统是已经被编译好的 程序 而编译器是运行在已经编译好的操作系统上的·
怎么说呢其实 以前没有编译器 都是手工汇编
就是人自己把 汇编语言转变成 2进制的可执行文件
后来程序越来越大 手工汇编 出错的几率也越来越大
所以有了编译器·
硬件上的汇编器和
硬件上没有汇编器 都是人自己写的
编译器上的汇编器什么关系?
编译器的汇编器是把 高级语言转成 计算机可执行的文件!即1.0
Ⅱ 汇编编译器的工作和生成可执行文件的执行过程是怎样的
汇编器,先生成目标代码,其中有一些数据,代码,还有一些表(重定位表等)
然后调用链接器,链接成可执行文件。
早期的汇编器,只负责生成目标代码,链接器是一个独立的程序。
需要手工分别作汇编,和链接
现在的汇编器,可以合并这两步,直接调用链接器,是直接生成可执行文件。
伪指令是汇编命令,是用来操作汇编器的命令。
不是指令,不生成对应的代码。
CPU只能识别二进制代码,数据通过加载器的加载,或者烧写器的烧写,初始化,有些代码,会在加载时重新定位。
代码也可能是烧写的,比如BIOS代码。
对于PC:
操作系统的启动代码,是由BIOS中的专门代码;
从磁盘的固定位置,加载在内存的固定位置的。
操作系统的其他部分,是由操作系统的启动代码加载的。
Ⅲ 汇编编译器工作原理
首先这个一一对应的关系是确定的
其次汇编编译就是简单对应和少量计算,就是查一个特别大的表而已
具体可以了解一下编译原理(这是个大坑,慎入)
Ⅳ C编译器一般包括汇编器吗
楼主把概念搞混了,汇编器(比如MASM)全称是汇编编译器,用来编译汇编语言的。我想在一般的程序中,是用誉衫来编译内嵌的汇编码的。
汇编庆唤腔语言的大部分命令都和机器码一一对应,
而高级语言和汇编的伪指令是不和机器码一一对应的
(也许高级语言一句会转换为N句机器码)。
因此从某种意义上说,汇编码就相当于机器码。
创造汇编只不过是看着舒服点而已,
要不然输入的指令只能由0或1构成,
和这些东西打交道会多麻烦啊。
编译器的作用是,将源文件(.c/.cpp/.pas等)转换为目链罩标代码(.obj/.dcu等)。这是已经是二进制代码了。
最后又连接器(Linker),将目标代码连接起来,
这样才形成了可执行文件
Ⅳ 汇编器和编译器有什么区别
汇编器(Assembler)是将汇编语言翻译为机器语言的程序。一般而言,汇编生成的是目标代码,需要经链接器(Linker)生成可执行代码才可以执行。
汇编语言是一种以处理器指令系统为基础的低级语言,采用助记符表达指令操作码,采用标识符表示指令操作数。作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。常用的高级语言编译器有Microsoft公司的MASM系列和Borland公司的TASM系列编译器,还有一些小公司推出的或者免费的汇编软件包等。
编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)
Ⅵ 汇编语言的编译器是用什么写的呢
汇编编译器:把汇编语言源程序转换为机器语言的程序,汇编编译器也可以生成源代码列表文件,其中包括行号,内存地址,源代码语句,程序中使用的符号及变量,交叉引用列表.
在Windows/Dos 下可用的汇编编译器有Microsoft宏汇编编译器MASM,Borland Turbo Assember(TASM)和The NetWide Assembler(NASM),其中NASM是跨平台的编译器可用于Windows/Dos/Linux下.他们的语法相近,都是Intel语法风格. 在Linux下可用的汇编编译器有NASM,gas.NASM和gas的语法风格相去甚远,NASM使用的是Intel 语法风格的汇编语法,而gas使用的是AT&T的汇编语法风格.
Ⅶ 编译器或汇编器都能产生目标代码吗
编译器或汇编器都能产生目标代码
区别是
编译器一般是中高级语言,它郑山更接近人类的语言,方便羡丛消编程
而
汇编器只是助记符,它是低级语兄知言,对编程者要求高,但能编写出高效率的程序
Ⅷ 汇编器和编译器有什么区别WINDOWS操作系统中是否包含这
汇编和编译是两个完全不同的概念.
汇编是指用汇编语言直接操纵机器,用汇编语言编的程序是不需要编译器进行编译的
编译是指把高级语言编的程序翻译成机器语言好让机器执行,不同的高级语言有不同的编译器
楼主可以看看<<汇编语言>>和<<编译原理>>这两本书就明白了