请问用语言编成程序后是什么样子

来源:百度知道 编辑:UC知道 时间:2024/05/24 18:03:49
用语言编成程序后在程序内是什么样子,是原来的代码吗?还是就编成10101010的二进制的了呢?为什么有些病毒还能对程序文件进行写入操作呢???什么原理啊?
不是具体的那一种,编成程序文件后不就都是*.exe了吗???

计算机语言分为
低级语言和高级语言
低级语言 包含:机器语言和汇编语言.

机器语言就是用二进制值描述指令序列.这是最底层的,所以有的指令最终都会被转化为机器语言执行.

汇编语言.就是把机器语言进行抽象, 比如用 mov ah 0 表示000101001这样的机器语言,实质上,还是机器语言.

你说的语言,估计是指的像C,C++,VB,Java这样的高级语言吧,它们可以分为两种,一种是把你写的源代码,经过编译工具编译后,直接生成汇编语言.(也就是exe里的代码段).还有一部分是放程序数据(数据段).

还有一种像VB,Java这一类,稍有不同,它们是把你写的程序转代为一个中间代码,然后由机器中指定的一个程序(解释器)来解释你的中间代码并执行. 实际上是解释器在运行.
当然vb和java也有区别,不过和这个问题无关.不赘述.

把高级语言编译成低级语言的过程是相当复杂的. 要经过词法分析,语法分析,语义分析,中间代码生成,中间代码优化,最终生成目标代码(exe).其中每个过程都可以写一本书,所以不是这能讲清楚的.

对exe文件进行修改不是不可能的,exe文件运行起来的大致原理是, 先由操作系统将文件内容直接映射到内存中去,然后由操作系统找到exe文件代码段执行入口,然后由cpu按代码顺序一条条的执行.这些执行的代码就是汇编代码,用特殊的十六进制编缉器就可以修改(文件加壳了哪就是另一回事了).病毒可以利用exe文件中,空闲的数据段,把自已数据写进去,再修改程序运行的起点,先加载自已的数据,运行自已的代码,然后再把控制权交回程序起点的地方执行,这就完成了对病毒加载到内存的过程,当然这只是一般的理论过程,实际比这要复杂得多.

你指的语言是哪一种?C++……?