dsPIC33EP64GS505汇编与C混合编程问题

[复制链接]
3309|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的汇编指令。
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        ;
 楼主| 南美大帝 发表于 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

粉丝
快速回复 在线客服 返回列表 返回顶部