打印

嵌入汇编寄存器地址溢出

[复制链接]
660|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pangb|  楼主 | 2022-5-5 22:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
执行下列语句,
   asm("banksel PORTA");//选择操作PORTA
    asm("clrf PORTA");//PORTA清0
    asm("banksel LATA");
    asm("clrf LATA");
    asm("banksel ANSELA");
    asm("clrf ANSELA");
    asm("banksel TRISA");
    asm("movlw 0x07");
    asm("movwf TRISA");  
出现告警提示为:
main.c:16: warning: (1352) truncation of operand value (0x10c) to 7 bits
main.c:18: warning: (1352) truncation of operand value (0x18c) to 7 bits
main.c:21: warning: (1352) truncation of operand value (0x8c) to 7 bits
main.c:18:警告:(1352)将操作数值(0x18c)截断为7位
因为寄存器文件地址只能为(0x00 ~ 0x7f),如何解决这个问题?

使用特权

评论回复
沙发
pengf| | 2022-5-5 22:55 | 只看该作者
不太明白这个,会不会C语言的部分使用了这个寄存器

使用特权

评论回复
板凳
zhanghqi| | 2022-5-5 22:58 | 只看该作者
还是不建议混合编程。

使用特权

评论回复
地板
jiahy| | 2022-5-5 23:00 | 只看该作者
混合不会寄存器被串改吗

使用特权

评论回复
5
chuxh| | 2022-5-5 23:03 | 只看该作者
只是警告而已,是提醒你这个可能性。你的操作本身没有问题

使用特权

评论回复
6
dingy| | 2022-5-5 23:06 | 只看该作者
一顿操作猛如虎, 为何不直接写:
PORTA = 0;
LATA = 0;
ANSELA = 0 ;
TRISA = 0x07;
这么简单几句话不就完事了?

使用特权

评论回复
7
pangb|  楼主 | 2022-5-5 23:09 | 只看该作者
这样是简单,但最近在学习用汇编的用法,效率高些

使用特权

评论回复
8
pangb|  楼主 | 2022-5-5 23:11 | 只看该作者
因为有三个地址值>0x7F,我查了指令的定义是地址值范围为:0~0x7F,所以会报警,但是实际中,地址有很多会超过0x7F

使用特权

评论回复
9
dengdc| | 2022-5-5 23:14 | 只看该作者
你可以试一下C编程, 编译之后看lst反汇编代码

使用特权

评论回复
10
heweibig| | 2022-5-5 23:16 | 只看该作者
不见得比你手动写的汇编效率低

使用特权

评论回复
11
supernan| | 2022-5-5 23:20 | 只看该作者
况且开优化等级之后, 生成的代码比你手动写的汇编不知道强到哪里去了..

使用特权

评论回复
12
jlyuan| | 2022-5-5 23:26 | 只看该作者
你怎么判断效率的高低?

使用特权

评论回复
13
chenjunt| | 2022-5-5 23:28 | 只看该作者
除非是电机,数字电源核心部分才需要死抠时间

使用特权

评论回复
14
zwll| | 2022-5-6 19:57 | 只看该作者
除此之外, 真的看不出来能用8位PIC16的场合还存在效率不够的问题...

使用特权

评论回复
15
renyaq| | 2022-5-6 19:59 | 只看该作者
效率的高低主要还是看代码逻辑性,并不见得汇编就比C的效率高,还是要看是谁写的

使用特权

评论回复
16
heweibig| | 2022-5-6 20:02 | 只看该作者
C应该相对比较好用吧

使用特权

评论回复
17
pangb|  楼主 | 2022-5-6 20:04 | 只看该作者
其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
18
tpgf| | 2022-6-1 15:15 | 只看该作者
看不懂汇编语言啊

使用特权

评论回复
19
aoyi| | 2022-6-1 15:28 | 只看该作者
如果用c就应该不存在这个问题

使用特权

评论回复
20
nawu| | 2022-6-1 15:50 | 只看该作者
还能有提示还是不错的

使用特权

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

本版积分规则

701

主题

7643

帖子

6

粉丝