打印
[C语言]

如何使C代码编译生成RLC指令?

[复制链接]
1580|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
datouyuan|  楼主 | 2016-5-5 09:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2016-5-5 12:06 | 只看该作者
自己处理移出位就可以了

使用特权

评论回复
板凳
ayb_ice| | 2016-5-6 08:45 | 只看该作者
if(c&0x80) {     c = (c<<1 )| 1; }else {     c = (c<<1 )| 0; }

使用特权

评论回复
地板
ayb_ice| | 2016-5-6 08:46 | 只看该作者
循环8次就可以了

使用特权

评论回复
5
datouyuan|  楼主 | 2016-5-6 15:35 | 只看该作者
本帖最后由 datouyuan 于 2016-5-6 15:38 编辑
ayb_ice 发表于 2016-5-6 08:45
if(c&0x80) {     c = (c
        C_flag=0;
        if(HI>0xff-0x25) C_flag=1;
        HI+=0x25;
        HI=(HI<<1)+C_flag;


上述代码判断也实现了RLC功能.假如能编译生成RLC指令,程序效率会极高.
你这段代码只是实现了RLC的功能,但不会使用mcu的RLC指令.

使用特权

评论回复
6
datouyuan|  楼主 | 2016-5-6 15:46 | 只看该作者
我需要一种写法,能够让编译器能够使用类似RLC的指令,

方便在各种mcu上移植,而程序效率差不多.

使用特权

评论回复
7
ayb_ice| | 2016-5-6 16:38 | 只看该作者
带进位的移位根本不是C标准,也不能保证mcu一定支持rlc指令

使用特权

评论回复
8
linqing171| | 2016-5-6 21:31 | 只看该作者
这个难啊。
内联函数和编译器有关。#include <intrins.h>

使用特权

评论回复
9
lyjian| | 2016-5-6 23:30 | 只看该作者
直接嵌入汇编

使用特权

评论回复
10
datouyuan|  楼主 | 2016-5-7 09:32 | 只看该作者
看来只有嵌入汇编了.

使用特权

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

本版积分规则

31

主题

1083

帖子

9

粉丝