老牛来学习 发表于 2020-1-27 20:11:02

C语言、汇编语言和机器语言的关系

C语言通过编译器编译之后的是汇编语言还是机器语言?
这三者的关系是什么?
机器语言是0和1。什么是汇编语言?

老牛来学习 发表于 2020-1-27 20:22:47

是不是应该是
C语言源代码编译位汇编代码,然后再把汇编代码解释成机器码?
如果是这样的话那C语言这种编译型语言和解释型代码有什么区别?
编译型代码步骤:C语言源代码——>汇编语言——>机器语言——>cpu执行
解释型语言步骤:JAVA源代码——>字节码——>机器语言——>cpu执行
(JAVA举例)
以上说的对吗?求大神指教

最后的魁拔 发表于 2020-1-27 20:28:54

pythons是解释性语言

zltzlt 发表于 2020-1-27 20:31:07

老牛来学习 发表于 2020-1-27 20:22
是不是应该是
C语言源代码编译位汇编代码,然后再把汇编代码解释成机器码?
如果是这样的话那C语言这种编 ...

基本是对的

人造人 发表于 2020-1-27 20:34:26

C语言通过编译器编译之后的是汇编语言还是机器语言?

C语言源代码到可执行文件经过如下几个阶段
C语言源代码 -> 预处理 -> C语言代码 (预处理后输出的还是C语言代码,只是没有了像#include #if, 这类预处理指令)
预处理后的C语言代码-> 编译 -> 汇编语言源代码
汇编语言源代码 -> 汇编 -> 可重定位的目标文件 (到了这里,已经是包含机器码的文件了,只是还不能运行,还需要下面的一个步骤)
可重定位的目标文件 -> 连接 -> 可执行文件

shake_a_tree@16 发表于 2020-1-27 20:46:56

汇编语言和机器代码是一一对应的。就是每一个汇编指令都是对应一条机器代码,机器语言是0和1,不方便阅读,用一些字母替代后,方便阅读。

老牛来学习 发表于 2020-1-28 08:19:44

人造人 发表于 2020-1-27 20:34
C语言源代码到可执行文件经过如下几个阶段
C语言源代码 -> 预处理 -> C语言代码 (预处理后输出的还是 ...

那么编译型语言和解释性语言不是一样的吗,只不过经过的中间步骤一个是汇编,一种是字节码?

老牛来学习 发表于 2020-1-28 08:21:15

人造人 发表于 2020-1-27 20:34
C语言源代码到可执行文件经过如下几个阶段
C语言源代码 -> 预处理 -> C语言代码 (预处理后输出的还是 ...

汇编语言源代码——>汇编之后的步骤能说的详细一点吗,应该怎么理解这些步骤?谢谢

写代码就像恋爱 发表于 2020-1-28 09:03:01

在c语言课程的第二节老师就讲到了

人造人 发表于 2020-1-28 12:51:39

老牛来学习 发表于 2020-1-28 08:21
汇编语言源代码——>汇编之后的步骤能说的详细一点吗,应该怎么理解这些步骤?谢谢

对于已经懂了的人来说,其实也就那样
对于不懂的人来说,无论你如何努力,结果也是徒劳的
这意味着你要学习C语言,要学习汇编语言
别人说什么就是什么吗?你要自己去学习,自己去体会
小马过河,那么河水是深是浅呢?不同的人有不同的看法,那你的看法是怎样的呢?

人造人 发表于 2020-1-28 12:55:09

老牛来学习 发表于 2020-1-28 08:21
汇编语言源代码——>汇编之后的步骤能说的详细一点吗,应该怎么理解这些步骤?谢谢

这个问题的结果,一百度一大堆,我们给你回复的恐怕和这些百度的结果也没有太大的区别
问题是不管是复制百度的结果也好,你自己百度也好,还是我们通过自己的方式向你解释也好
不管是怎样,恐怕意义都不大
你需要自己去学习,自己去体会

zwhe 发表于 2020-6-3 16:25:16

{:10_245:}
页: [1]
查看完整版本: C语言、汇编语言和机器语言的关系