社区
C++ 语言
帖子详情
为什么高级语言要先编译成汇编语言……
kero77
2008-10-28 09:18:30
如题…… C++语言 编译的时候为什么不直接把高级语言的源代码直接编译成机器码,而中间要多一步汇编语言呢?
...全文
1545
14
打赏
收藏
为什么高级语言要先编译成汇编语言……
如题…… C++语言 编译的时候为什么不直接把高级语言的源代码直接编译成机器码,而中间要多一步汇编语言呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kero77
2008-10-28
打赏
举报
回复
结贴 给你分 …… 呵呵谢谢
Rainstorey
2008-10-28
打赏
举报
回复
拿典型的C++编译器来说 前端(语法检查+词法分析+代码生成(汇编语言)+优化器)+(Windows汇编器,Linux汇编器,HPC汇编器...)(生成平台相关的机器码)
这就是所谓的C++是跨平台的编译器,因为他有很多平台上的后端。共享前端。一套代码到处编译。
Java因为是混合型(编译+执行)于此类似,一套代码到处运行。OK?
kero77
2008-10-28
打赏
举报
回复
有没有 什么资料 可以推荐一下 让我看看 你说的 那写具体内容
kero77
2008-10-28
打赏
举报
回复
有没有 什么资料 可以推荐一下 让我看看 你说的 那写具体内容
zhuwanglove
2008-10-28
打赏
举报
回复
先译成汇编,可对其进行代码优化,提高速度等.并且可以分工处理,除低难度.
kero77
2008-10-28
打赏
举报
回复
楼上说的 机器码不同 什么意思啊? 应该是不同的操作系统理解机器码不同吧!
汇编器屏蔽了机器的差异 是什么意思
Rainstorey
2008-10-28
打赏
举报
回复
某些语言是一步到位的(高级语言-》二进制可执行程序)。但大多数是翻译成汇编语言后再编译成二进制码。这些编译器都分前端和后端。设计优良的后端可以给任何语言使用。比如Intel的后端就BC++和VC++再使用。这样设计可以大大简化编译器设计的难度,同时又可让设计者或高级用户观察编译器生成代码的质量。
kero77
2008-10-28
打赏
举报
回复
是从高级语言直接到机器码语言的编译 只是 难度上的问题吗?……
开心爸爸84
2008-10-28
打赏
举报
回复
因为每个机器码都不同,要做个编译器,那得做很多个机器的版本,不累死才怪呢,汇编器屏蔽了机器的差异而已
yshuise
2008-10-28
打赏
举报
回复
因为翻译汇编代码相对来说更简单。翻译成机器码,工作非常之繁琐,不知道汇编翻译成机器码的人用了多大的功夫啊?
帅得不敢出门
2008-10-28
打赏
举报
回复
已经有汇编到机器代码的转换程序了
为何不利用
直接把高级语言的源代码直接编译成机器码的话那要做高级语言到机器码之间的映射,你觉得容易实现么?
每个写编译器的都必须熟练机器码 这个不是在做重复劳动么
zlcs8921
2008-10-28
打赏
举报
回复
因为机器已经认识汇编语言了。
三文鱼也会飞
2008-10-28
打赏
举报
回复
由于汇编语言只是机器语言的符号化,虽说相对简单了,但是还是得要求人们学习相应的内部结构,对于复杂的内部结构,有很大一部分人还是无从着手的.所以就出现了高级语言,当程序员用高级语言指令写完源程序后,只需用编译器编译就可运行了.此时编译器所做的工作就是把高级语言指令翻译成汇编语言(机器语言).
yeah920
2008-10-28
打赏
举报
回复
这个。。。不了解。
机器
语言
、
汇编
语言
、
高级
语言
本文介绍了编程
语言
的三个层次:机器
语言
、
汇编
语言
和
高级
语言
。机器
语言
直接对应二进制指令,难以理解和记忆;
汇编
语言
使用助记符,效率高但缺乏通用性;
高级
语言
如C、C++等易于编写,具有良好的可移植性。文中还讨论了
汇编
语言
和
高级
语言
的特点、相关概念以及两者在实际应用中的混合使用情况。
高级
语言
为什么不直接
编译成
机器码,而
编译成
汇编代码?
本文解释了为何大多数编译器将
高级
语言
先
转化为
汇编
语言
而非直接转化为机器码。介绍了这种做法的好处包括易于优化和调试,并探讨了分层实现如何简化编译器的设计。
高级
语言
(C
语言
)、
汇编
语言
、机器
语言
区别?编译器如何将
高级
语言
编译成
机器
语言
?
文章介绍了
高级
语言
与低级
语言
的区别,特别是解释型和编译型
高级
语言
的工作方式。
汇编
语言
作为与机器
语言
密切相关的
语言
,具有直接硬件控制的能力但可读性和可移植性较差。机器
语言
是计算机直接执行的二进制指令。编译器在编程中的作用是将
高级
语言
转换为机器
语言
或目标代码,以供计算机执行。,
【软件系统分析】机器
语言
、
汇编
语言
、
高级
语言
本文从底层到高层介绍了机器
语言
、
汇编
语言
和
高级
语言
,阐述了它们的定义、特点和示例。还解释了处理机和目标程序的概念,展示了二进制指令代码的形式。此外,分析了尽管机器和
汇编
语言
时空开销小,但
高级
语言
因开发效率、可维护性等优势,在多数项目中更具优势。
为什么要学习
汇编
语言
?
本文分享了一位程序员从困惑到开悟的学习
汇编
语言
之旅。作者在探索计算机底层原理的过程中,对汇编产生了浓厚兴趣。通过学习,不仅提升了对计算机运行机制的理解,还发现了汇编在bootloader解析、问题分析、性能优化等方面的实用价值。
C++ 语言
65,210
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章