矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: 雪冬

小实验:51单片机c编译器生成汇编语言

[复制链接]
     
 楼主| 发表于 2017-12-13 11:15:48 | 显示全部楼层
风流侠客 发表于 2017-12-10 11:30
现在的观点看这确实是标准宏汇编了,一开始关于这个代码,我的疑问点在函数标签的命名格式和部分标签代码 ...

这是 c 编译器生成的代码,确实不同于手写 。我总是觉得c编译器很神秘 ,不知现在有没有国产的编译器 。
回复 支持 反对

使用道具 举报

     
发表于 2017-12-17 16:29:56 | 显示全部楼层
风流侠客 发表于 2017-12-10 11:30
现在的观点看这确实是标准宏汇编了,一开始关于这个代码,我的疑问点在函数标签的命名格式和部分标签代码 ...

C是可以嵌入汇编的,这样命名,我认为是为了避免和人工嵌入的汇编混淆,另外,这样命名是有规律的,有资料介绍,不过我没有看。
回复 支持 反对

使用道具 举报

     
发表于 2017-12-17 16:33:02 | 显示全部楼层
雪冬 发表于 2017-12-13 11:15
这是 c 编译器生成的代码,确实不同于手写 。我总是觉得c编译器很神秘 ,不知现在有没有国产的编译器 。
...

不考虑效率的话,编译器很好做,个人都能做出来,国内也不少,51的也有。
回复 支持 反对

使用道具 举报

     
发表于 2017-12-17 17:00:02 | 显示全部楼层
雪冬 发表于 2017-9-1 08:18
不难学.先找最简易的教材,多实践.我是自学的.感觉入门很容易,做项目也不难,但是到高级阶段,也会很难.我现 ...

请问,入门学什么。能推荐一本书籍吗
回复 支持 反对

使用道具 举报

     
发表于 2017-12-17 17:02:20 | 显示全部楼层
风流侠客 发表于 2017-9-1 19:02
这种代码可以叫做C51语言与机器码之间的中间代码,部分代码确实是汇编,但总体来看并不是完备的MCS-51汇编 ...

找什么样的教材啊,我好想学,就是一头雾水,不知从什么开始。
回复 支持 反对

使用道具 举报

     
发表于 2017-12-17 17:14:10 | 显示全部楼层
本帖最后由 风流侠客 于 2017-12-17 17:17 编辑
zhxzhx 发表于 2017-12-17 16:29
C是可以嵌入汇编的,这样命名,我认为是为了避免和人工嵌入的汇编混淆,另外,这样命名是有规律的,有资 ...


C51嵌入汇编在Keil中我用过,写法和这个差不多。我在考虑的问题是,这种汇编里面的标签写法是否是Keil特有,有没有别的编译器也可以用。
回复 支持 反对

使用道具 举报

     
发表于 2017-12-17 17:16:41 | 显示全部楼层
人海浮萍 发表于 2017-12-17 17:02
找什么样的教材啊,我好想学,就是一头雾水,不知从什么开始。

如果学汇编,最正统的是Intel 原版的MCS-51开发手册,内容非常详细,但初学者阅读会有些吃力。如果学C51,比较易学的书是郭天祥新概念单片机C语言教程,浅显易懂。
回复 支持 反对

使用道具 举报

     
发表于 2017-12-17 17:19:37 | 显示全部楼层
风流侠客 发表于 2017-12-17 17:16
如果学汇编,最正统的是Intel 原版的MCS-51开发手册,内容非常详细,但初学者阅读会有些吃力。如果学C51 ...

谢谢,我先学后者吧。入门再说。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2017-12-17 22:52:17 | 显示全部楼层
zhxzhx 发表于 2017-12-17 16:33
不考虑效率的话,编译器很好做,个人都能做出来,国内也不少,51的也有。

做这种编译器需要用到flex和bison吗?或者lex和yacc?
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2017-12-17 23:02:32 | 显示全部楼层
风流侠客 发表于 2017-12-17 17:14
C51嵌入汇编在Keil中我用过,写法和这个差不多。我在考虑的问题是,这种汇编里面的标签写法是否是Keil ...

您是不是说标签中出现了问号“?”等,或者标签名字太长?我印象中intel汇编的标签命名比较自由,是允许这样的。没查资料,不一定说的准确。另外,前面生成的汇编代码是可以被汇编编译器通过的。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2017-12-17 23:13:42 | 显示全部楼层
人海浮萍 发表于 2017-12-17 17:00
请问,入门学什么。能推荐一本书籍吗

上面老师的推荐就可以。需要掌握的知识有3个:汇编语言,c语言,单片机硬件原理。另外最好有一套开发单片机的软件及硬件系统,网上有卖,很便宜。多做实验。
回复 支持 反对

使用道具 举报

     
发表于 2017-12-18 08:09:50 | 显示全部楼层
雪冬 发表于 2017-12-17 23:02
您是不是说标签中出现了问号“?”等,或者标签名字太长?我印象中intel汇编的标签命名比较自由,是允许 ...

嗯,差不多是这个意思,这一类的编译器生成汇编我用MASM51测试过,那些标签全报错,所以我怀疑那种带问号的写法是不是Keil出现之后才有的,这种写法也不知有没有通用性,不知其它的汇编器还有没有能处理这种代码的。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2017-12-18 08:30:31 | 显示全部楼层
风流侠客 发表于 2017-12-18 08:09
嗯,差不多是这个意思,这一类的编译器生成汇编我用MASM51测试过,那些标签全报错,所以我怀疑那种带问号 ...

不同的编译器估计会有差别。
回复 支持 反对

使用道具 举报

     
发表于 2017-12-18 15:39:11 | 显示全部楼层
雪冬 发表于 2017-12-18 08:30
不同的编译器估计会有差别。

我的感觉就是这样,编译器是有区别的,而且还不小。
回复 支持 反对

使用道具 举报

     
发表于 2017-12-18 18:34:58 | 显示全部楼层
雪冬 发表于 2017-12-17 23:13
上面老师的推荐就可以。需要掌握的知识有3个:汇编语言,c语言,单片机硬件原理。另外最好有一套开发单片 ...

谢谢指点。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-30 15:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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