找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 1880|回复: 0
打印 上一主题 下一主题
收起左侧

高级语言c

[复制链接]
跳转到指定楼层
楼主
ID:107189 发表于 2016-3-6 02:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
       long  long ago ,对于计算机而言,大部分是数学家在玩,与数字打交道,那时候是用01代码编写程序,terrible,有人发现这样不行呀,01代码没有什么规律,记不住,所以有人想到,把01代码总结成汇编语言,这样为了方便人家记忆,提高编程效率,但是对于每种cpu而言,汇编语言都不一样,都烦呀。。例如intel 的奔腾系列,AMD的cpu,intel还有其他的系列cpu,01代码对应的功能不一样,所以汇编语言也不一样,以我知道的为例。arm7,和51cpu汇编语言那是相差很远呀。。。完全不是一回事。arm7.arm9,arm11的汇编也不完全相同,也有差别,也要找到差别,哎、。、、刚才arm7和51,不形象,arm7和8086.够形象吧。。。如果从8086汇编程序员转到arm汇编程序员上,那完全是干另一件事呀。。。所以,01代码和汇编语言都叫底层语言,机器语言。。
        高级语言呢。。例如c语言,它是怎么运行的了。也就是我个人的理解,例如你在IDE中写一个c程序,IDE中包含了编译器和编辑器,你点击编译按钮,编译器会把c语言编译成bin(0,1)代码,我估计的::编译器有下列步骤
1.预处理  #include<stdio.h>    #ifdef   #endif   and so on
2. 编译   把c/c++代码翻译成汇编语言。   (这个汇编语言是对应平台的汇编语言 平台指对应操作系统和cpu,对于pc机,cpu就那么几种,系统也是那么几种了,例如你的pc机是xp,intelcpu ,编译器就把c代码翻译成xp和inte cpu对应的汇编语言了。
3.汇编,  把上面的汇编语言翻译汇编成机器代码(01)、,linux下一般表现为ELF目标文件(obj文件)
4.连接。把程序的01代码和库文件的01代码连接起来,构成特定平台上运行的可执行文件了。
如果 对arm_linux_gcc了解的话,就容易理解了,嘻嘻。。。arm_linux_gcc可以编译c语言,arm汇编语言。裸机程序可以,也可以是应用程序了,也就是arm上linux上的应用程序。。。这就是平台了。
     这样也就引出了交叉编译了,什么是交叉编译,也就是在一个平台上编译生成另一个平台上运行的可执行程序。
在linux和intel平台上编译生成arm和linux的平台的可执行程序。。。
     同时我回忆了下c#,先把 c# 源程序由编译器生成中间代码( microsoft intermediate language microsoft 中间代码了, 我们的 exe 其实就是这个东西了,, xp 机子上点击这个文件,就由。 Net framework 中的 Just-In-Time 编译器就把这个中间代码 MSIL 编译为专用于 OS (这里指 xp 了)和目标机器结构的本机代码了,这样才可以执行了。
     

记录下平时小技巧吧:
一。。复制的文字在word下有背景怎么办??、
1.。复制到txt,背景消失
2.word中工具栏中两个A的格式窗口有清除格式。。选择就行了
二。 有时候下载的word扩展名是docx,,有些人可能会想,会不会是人家出现搞错了呢。。非也。。
docx是office 2007(word 2007)的扩展名,doc是office 2003(word 2003)的,听说为了节省存储空间,可以下载个docx2doc converter工具,更猛的是装office 2007.。呵呵。。或者装个office2003变成2007 的补丁。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表