2396|9

10

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

将一个汇编文件 分成 几个汇编文件 编译提示变量没定义 [复制链接]

用的是PIC16F684,因为之前用C,发现FLASH太小,2K的容量,C语言折腾不起,改用汇编语言,之前全部代码写在一个文件里面,编译通过,测试功能正常。为了管理方便,就把里面的中断部分的代码单独放在一个文件(没作任何改动,单纯的剪切过去),编译时就提示中断里面的变量没定义。

以前用的是AVR的汇编,都是这样操作,没任何问题,不知这个与AVR有什么区别,麻烦各位告知一下,是不是我漏了什么?如果能提供一个汇编的例程(包含几个汇编文件)参考一下就更好了,先谢了

最新回复

先用C写呀,然后编成汇编再手动调。   详情 回复 发表于 2021-8-10 09:34
点赞 关注
 

回复
举报

6040

帖子

195

TA的资源

版主

沙发
 

汇编和C语言其实很相近,变量在不同文件共享,肯定是在一个文件定义,在另一个文件声明外部变量。至于具体细节如何,就要自己查阅编译器手册了,这个手册通常在开发环境的帮助里就有。让别人给你提供可用的工程,这个最好,但是用pic的相对很少,可能性不大。

 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

lcofjp,感谢你的回复,我在网上找了好久,汇编的例程很少,C语言偏多,官方的也是个单文件的DEMO汇编,感觉无从下手

 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

4
 

我平常的做法,是把相关的变量定义在  ***.inc头文件,在主汇编文件里的开头 #include  " XXX.inc  "  文件,然后在主汇编文件未尾  ,把其它的功能模块汇编文件包含进来

#include  " 01.asm  "

#include  " 0X.asm  "

 

 
 
 

回复

6040

帖子

195

TA的资源

版主

5
 
本帖最后由 lcofjp 于 2021-8-9 17:48 编辑
LB2019 发表于 2021-8-9 15:53 我平常的做法,是把相关的变量定义在  ***.inc头文件,在主汇编文件里的开头 #include  " XXX. ...

不知你是否清楚变量和常量的区别,常量可以放在头文件中供其他文件引用,变量是万万不可这样做的。如果你清楚了常量和变量的区别,在搜索引擎搜索pic8 assembler manual 第一个结果就是以下链接:https://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB%20XC8%20PIC%20Assembler%20User's%20Guide%2050002974A.pdf

 

其中第4.9.26指导你如何在多个文件中共享变量。

 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

6
 

除了主文件,是不是需要对其它的模块文件声明什么的?

 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

7
 

这是我建立的工程文件,汇编,编译软件用的是MPLAB IDE 8.92

L7MTC.rar

22.17 KB, 下载次数: 0

 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

8
 

lcofjp,你提供的这个文档应该就是我想要的,非常感谢

 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

9
 

先用C写呀,然后编成汇编再手动调。

 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

10
 

我之前是用C,发现编译后程序太大。如果编成汇编后再手动调,这个工作量似乎有点大,

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表