打印

dsPIC33EP64GS505汇编与C混合编程问题

[复制链接]
2782|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
南美大帝|  楼主 | 2021-3-15 17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
您好:
我想在汇编文件中调用C文件定义的变量,但编译报错,具体做法和报错情况如下:
C头文件(.h):
#include "xc.h"
#include <stdint.h>
extern int16_t     dcmCorrFactor
C源文件(.C):
#include "Variables_s.h"
int16_t    dcmCorrFactor           = 32767;
汇编文件(.S):
#include "Variables_s.h"
.include "p33Exxxx.inc"
mov _dcmCorrFactor , w12   
编译时报错:
\support\dsPIC33E\h/p33EP64GS505.h:26785:Error: Invalid mnemonic: 'extern'
感觉像是头文件调用冲突了
麻烦哪位大神帮忙指导下,如何处理,万分感谢!!!

使用特权

评论回复

相关帖子

沙发
郑朝清| | 2021-3-15 19:39 | 只看该作者

dsPIC33EP64GS505汇编与C混合编程问题

asm('mov _dcmCorrFactor , w12 ');

使用特权

评论回复
板凳
南美大帝|  楼主 | 2021-3-16 17:57 | 只看该作者
郑朝清 发表于 2021-3-15 19:39
asm('mov _dcmCorrFactor , w12 ');

非常感谢您的回答。我想用汇编实现switch语句,请问有什么办法吗

使用特权

评论回复
地板
郑朝清| | 2021-4-12 10:59 | 只看该作者
南美大帝 发表于 2021-3-16 17:57
非常感谢您的回答。我想用汇编实现switch语句,请问有什么办法吗

做有条件的CALL指令。去看看P33的汇编指令。

使用特权

评论回复
5
wooda| | 2021-4-16 08:24 | 只看该作者
        asm("        MOV                ARG,W0");
        asm("        AND                #0x0007,W0");
        asm("        ADD                W0,W0,W0");
        asm("        BRA                W0");
        asm("   goto  FUN_0        ;
        asm("    goto  FUN_1        ;
        asm("    goto  FUN_2        ;
        asm("    goto  FUN_3        ;
        asm("    goto  FUN_4        ;

使用特权

评论回复
6
南美大帝|  楼主 | 2021-4-19 08:49 | 只看该作者
wooda 发表于 2021-4-16 08:24
asm("        MOV                ARG,W0");
        asm("        AND                #0x0007,W0");
        asm("        ADD                W0,W0,W0");

非常感谢您,问题解决了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝