社区
C++ 语言
帖子详情
为什么高级语言要先编译成汇编语言……
kero77
2008-10-28 09:18:30
如题…… C++语言 编译的时候为什么不直接把高级语言的源代码直接编译成机器码,而中间要多一步汇编语言呢?
...全文
1443
14
打赏
收藏
为什么高级语言要先编译成汇编语言……
如题…… C++语言 编译的时候为什么不直接把高级语言的源代码直接编译成机器码,而中间要多一步汇编语言呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
这个。。。不了解。
伟福6000编译仿真器及使用说明
第一章 概述………………………………………………………………………………1 第二章 仿真器硬件 仿真头介绍 POD8X5XP 仿真头… …………………………………………………………………5 POD196KB/KC 仿真头…………………………………………………………………6 PODH8X5X 仿真头 ……………………………………………………………………7 POD520P 仿真头………………………………………………………………………8 POD196MC/MD 仿真头…………………………………………………………………9 POD8051 仿真头………………………………………………………………………10 POD16C67XP 仿真头 …………………………………………………………………10 POD16C5XP 仿真头……………………………………………………………………11 PODLPC76X 仿真头……………………………………………………………………12 PODLPC93X 仿真头……………………………………………………………………12 POD87C52 仿真头 ……………………………………………………………………13 POD552 仿真头 ………………………………………………………………………13 仿真器介绍 仿真器介绍……………………………………………………………………………14 E6000L/E6000T/E6000S 型仿真器 …………………………………………………15 G6W 型仿真器…………………………………………………………………………16 K51L/K51T/K51S 型仿真器 …………………………………………………………17 H51L/H51T/H51S 型仿真器 …………………………………………………………17 LPC76X 型仿真器 ……………………………………………………………………17 LPC93X 型仿真器 ……………………………………………………………………17 P51 型仿真器…………………………………………………………………………18 PIC6000 型仿真器……………………………………………………………………18 第三章 软件安装 WINDOWS 版本软件安装………………………………………………………………19 编译器安装…………………………………………………………….…………………20 第四章 开发环境 菜单 | 文件………………………………………………………………………………21 菜单 | 编辑………………………………………………………………………………25 菜单 | 搜索………………………………………………………………………………25 菜单 | 项目………………………………………………………………………………26 菜单 | 执行………………………………………………………………………………26 菜单 | 窗口………………………………………………………………………………28 0 目录 0 伟福 目录 ii 南京伟福实业有限公司 ® 菜单 | 外设………………………………………………………………………………34 菜单 | 仿真器……………………………………………………………………………35 仿真器 | 仿真器设置………………………………………………………. ………35
语言
设置………………………………….………………………………………35 目标文件设置…………………………………………….………………………36 仿真器设置………………………………………………………………….……36 通信设置……………………………………………………………………….…40 仿真器 | 跟踪器/逻辑分析仪设置 ………………………………………………40 仿真器 | 静态测试 …………………………………………………………………41 仿真器 | 设置文本编辑器 …………………………………………………………41 仿真器 | 设置汇编预定义符号 ……………………………………………………41 菜单 | 帮助………………………………………………………………………………41 快速入门 …………………………………………………………………………………42 伟福文本编辑器使用 ……………………………………………………………………48 PODH8X5X 使用说明……………………………………………………………………51 LPC 编程器使用 …………………………………………………………………………54 在Keil的uV2 集成环境中使用伟福仿真器……………………………………………57 如何用PODPIC67XP 仿真PIC16C711 芯片…………………
编译原理全部详细课件
编译原理全部详细课件 第一~十一章 第一章 引 论 1.1 什么是编译程序 编译程序:从功能上看,编译程序就是语 言翻译程序,它把
高级
语言
书写的程序翻 译成低级
语言
(汇编或机器
语言
)的等价 程序。 ………… …… ……
C
语言
课堂练习习题集及答案
C
语言
课堂练习习题集及答案 《C
语言
程序设计》自主学习检验题汇编 第一、二章 C程序与算法 单项选择题 1. 将
汇编
语言
编写的程序翻译成目标程序的程序是( ) A)解释 B)编译 C)汇编 D)目标 2. 不属于面向机器
语言
的是 ( ) A)符号
语言
B)二进制
语言
C)
汇编
语言
D)C
语言
3. 将
高级
语言
编写的程序翻译成目标程序的程序是()。 A)解释 B)编译 C)汇编 D)二进制 4. 不属于
高级
语言
的是()。 A)BASIC B)C C)ALGOL D)符号
语言
5. 程序段的基本结构中,不包含()。 A)函数结构 B)循环结构 C)顺序结构 D)分支结构 6、C
语言
源程序的最小单位是( )。 A、程序行 B、语句 C、函数 D、字符 7、以下说法正确的是( )。 A、 在C
语言
中,要调用的函数必须在main()函数中定义 B、 C
语言
程序总是从第一个定义的函数开始执行 C、 C
语言
程序中,main()函数必须放在程序的开始部分 D、 C
语言
程序总是从main()函数开始执行 8、以下对C
语言
描述中正确的是( )。 A、 C
语言
源程序中可以有重名的函数 B、 C
语言
源程序中要求每行只能书写一条语句 C、 C
语言
源程序中,注释可以出现在任何位置 D、 最小的C源程序中没有任何内容 9、对C
语言
源程序执行过程描述正确的是( )。 A、 从main() 函数开始执行,到main()函数结束 B、 从程序的第一个函数开始执行,到最后一个函数结束 C、 从main函数开始执行,到源程序的最后一个函数结束 D、 从第一个函数开始执行,到main函数结束。 …………………………
C
编译成
其他
语言
,编程达人 所有的编程
语言
最后会
编译成
C,再
编译成
汇编,最后落实到硬件操作上吗?...
首
先
上结论:(1)不是所有的编程
语言
都要
先
编译成
C(2)甚至有编程
语言
连
编译成
汇编这一步都跳过了。(3)不是所有的编程
语言
都需要编译,有的是纯解释型
语言
1. 编程
语言
到硬件执行之间到底发生了什么?硬件执行的本质就是一堆电子元件的“开关”动作,开、关两种状态可以用二进制的1和0来表示,这样整个硬件的执行就和二进制对应了起来。硬件是无法理解上层的
高级
编程
语言
的(比如Java、C++、C,、C#、Jav...
高级
语言
与
汇编
语言
的对应关系详解
高级
语言
与
汇编
语言
的关系解析 本文通过生动的类比,揭示了
高级
语言
与
汇编
语言
之间的转换关系。
高级
语言
(如C、Python)是程序员易于理解的抽象表达,而
汇编
语言
则是计算机硬件直接执行的底层指令。文章详细阐述了: 两者的本质区别
高级
语言
:面向开发者,抽象简洁,可移植性强
汇编
语言
:面向硬件,与特定CPU架构绑定,执行效率高 编译转换过程 描述了从源代码到可执行文件的四个关键步骤:预处理→编译→汇编→链接,并通过GCC命令示例说明具体操作。 常见编程结构的底层实现 用汇编代码展示了变量、条件判断、循环和函数调用
C++ 语言
65,199
社区成员
250,520
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章