编译程序安装在计算机的哪里

来源:百度知道 编辑:UC知道 时间:2024/06/10 13:58:02
请问用于将指令、不同语言写的程序编译成机器语言的编译程序被安装在计算机的哪里?例如,当我输入DOS中的“copy”指令时,这条指令将被译成计算机读得懂的机器语言,这个编译程序在哪里?不要告诉我在硬盘里,因为我可以不装硬盘而从光盘启动DOS。如果说这是操作系统自带编译程序,开机后载入计算机,那么这个编译程序被载入计算机的哪里?若是如此,这个编译程序是在开机后被CPU或计算机其他硬件本身内置的固有的识别指令将此编译程序调入计算机的吗?这种固化的识别、载入指令又在计算机的哪个硬件里?或是被引导程序载入计算机?
抛开操作系统和其他高级语言(VC、VB等),如果转到最简单的单片机,这个可不需要任何操作系统或外接磁盘就能运行汇编语言程序。这种将汇编语言指令,如“MOV”,译成机器语言的编译程序在微机的哪里?如果说是固化在微机上的,那它如何能识别、编译不同的语言编写的程序?当一种新的程序语言开发出来后,就有可能不能识别。
不要回答一大堆编译原理,只要回答:编译程序装在计算机的哪里。

举例来说:

当你使用C编写代码,使用编译器编译后,即生成了可执行程序。当可执行程序被操作系统的加载器加载到内存、并准备好必要的数据后从代码段开始执行,这时的代码段代码已经是机器码了,无须编译。当然,可执行程序里的所有数据并非都是代码,有些是写给操作系统看的,以使操作系统能为程序的执行做好必要准备。

至于说DOS命令,分为外部命令和内部命令。外部命令和一般的可执行程序没有区别,他以可执行程序文件的形式存在。没有这个文件就不能运行这个命令;内部命令是固化在操作系统中的代码模块,一般以DLL文件的形式存在。至于哪个DLL文件包含特定的内部命令的代码,就必须查资料了。

CPU所支持的指令集,是由CPU的物理设计决定的,并不是说有什么指令存放在CPU上。

当然,如果是解释性的语言。那么,可执行程序是一边被解释(编译)一边被执行的。所以他的速度要慢些。并且必须安装对应的编译(解释)程序。比如JAVA。

CPU分为运算器(ALU FPU等)和控制器,写入高级语言(指令)后CPU编译成二进制代码交给运算器然后周而复始进行一系列的流水指令 你所说的计算机自带的编译程序其实就是CPU所支持的指令集 至于装在哪个地方 每个不同框架的CPU都不同 并且不同框架之间一般都带有加密程序的 .现在一般CPU都是在X86框架下研发的 你可以试着搜索一下X86框架下CISC指令系统目录或者RISC计算机指令系统目录
至于说的高级语言C C+ CB什么的 都是在基于计算机语言也就是一串二进制代码的基础上发明的 换一个说法就是 所有的高级语言都可以通过CPU指令集解码成计算机原始指令 所以说你找的这个东西根本没有必要

例如,当我输入DOS中的“copy”指令时,这条指令将被译成计算机读得懂的机器语言,
这里就开始说错了。DOS中输入 COPY 的时候因为COPY不是DOS内置的程序,DOS从它的环境变量(和你后面说的:不要告诉我在硬盘里,因为我可以不装硬盘而从光盘启动DOS。记录了这些硬件或用户设置的特殊数据)知道它默认命令查找路径(这里又要便用文件系统,也是操作系统的一部分)找到这个文件,把它写入内存,设定一些重定位(让程序在不同的地址加载也能正确运行)把