找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4348|回复: 12
打印 上一主题 下一主题
收起左侧

51汇编语言是否可以模块化?

  [复制链接]
跳转到指定楼层
楼主
ID:53308 发表于 2013-8-24 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      今天看了一个视频是如何在keil下实现c的模块化,创建头文件啥的,请问51汇编语言也可以模块化设计吗?如果可以的话如何实现呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:153041 发表于 2017-1-20 09:46 | 只看该作者
模块化是构架的问题,不是语言的问题。  如果你想做一个功能,箱把功能切分成按键、显示、执行这3个模块,那么,无论汇编、C、还是JAVA、或者swift,都能表达。 你心里有想说的话,无论用哪国的语言都能表达。

汇编语言属于低级语言,面向硬件的,编写代码效率比较低。但是由于是面向硬件的,如果要玩透系统,那就绕不过去肯定要接触,否则有些坎是过不去的。

C这样的高级语言是为了解决编写程序生产力而来的,(可移植性就不谈了。。),用来编写大部分功能性的,应用性的代码效率要比汇编高的多,易写易读。

评分

参与人数 1黑币 +80 收起 理由
admin + 80 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:27916 发表于 2013-8-24 12:47 | 只看该作者
函数就是 模块化

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:7485 发表于 2013-8-24 13:35 | 只看该作者
也可以。c语言模块、汇编语言模块混合。

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:76287 发表于 2015-4-10 09:18 | 只看该作者
虽然不懂,但还是要顶,毕竟每一位老手都是从新手蜕变而来的,赞一个。。。。。。
回复

使用道具 举报

6#
ID:79309 发表于 2015-5-8 15:38 | 只看该作者
可以首先调用,難后返回(ret)

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:153199 发表于 2017-1-8 16:58 | 只看该作者
可以的
回复

使用道具 举报

8#
ID:143803 发表于 2017-1-18 20:55 来自手机 | 只看该作者
汇编没有c语言清晰
回复

使用道具 举报

9#
ID:111634 发表于 2017-1-18 21:09 | 只看该作者
本帖最后由 zl2168 于 2017-1-19 15:38 编辑

当然可以,但比较麻烦,且容易出错。
……

C51编程的特点


C51编程与80C51汇编语言相比,主要具有以下特点:


编程相对方便。


用汇编语言编程,几乎每一条指令操作都与具体的存储单元有关,80C51单片机的片内存储空间容量有限,编程之初即需安排好片内存储单元的用途,且一般不宜重复使用。当一些应用项目程序量较大时,片内存储单元有可能捉襟见肘,稍有不慎就将出错,编程相对复杂。而C51编译系统能自动完成对变量存储单元的分配和使用,且对函数内局部变量占用的存储单元,仅在调用时临时分配,使用完毕即行释放,大大提高了80C51片内有限存储空间的使用效率。因此,使用者只需专注于软件编程,不需过多关注涉及的具体存储单元及其操作指令,编程相对方便。
便于实现各种复杂的运算和程序。
方便地调用各已有程序模块。……
已有程序模块包括C51编译器中丰富的库函数、用户自编的常用接口芯片功能函数和以前已开发项目中的功能函数读者可能会说,汇编程序不也一样可以调用吗?不一样。汇编程序调用时,涉及到模块中具体的存储单元,这些存储单元很可能与主调用程序有重复,会引起冲突而出错。C51程序函数中的变量一般为局部变量,主函数调用前不占用存储单元,仅在调用时由C51编译器根据存储区域空余情况临时分配,使用完毕即行释放,一般不会发生冲突而出错。因此,C51程序方便地调用各已有程序模块,减少重复劳动,利于团队合作开发,大大提高编程效率。
……

以上摘自张志良编著《80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9, 用于学习51单片机原理,程序(c和汇编)语句条条有注解,便于阅读理解,便于自学。











回复

使用道具 举报

10#
ID:104472 发表于 2017-1-19 10:12 | 只看该作者
汇编可以模块化,但是适用范围小,使用范围窄,没有c模块使用方便,混合编程就是例子,现在为了工程进度,一般很少使用汇编,也就没有彻底研究过,汇编模块化了
回复

使用道具 举报

11#
ID:155507 发表于 2017-1-21 13:30 | 只看该作者
可以的。只是在模块调用时注意输入输出数据的衔接,哪些寄存器存什么数,执行完后用哪个寄存器带出来数据,都要考虑好。
回复

使用道具 举报

12#
ID:162841 发表于 2017-1-25 20:58 来自手机 | 只看该作者
c语言更加简洁的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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