ltby00 发表于 2018-6-14 21:20:17

STC8A的移位问题,代码该怎么表达请教?


extern  U8   xdatamBuffer;   //变量
在其它环境中是这样实现整体移位,连续接收数据
 asm("RRCmBuffer+10");
    asm("RRCmBuffer+9");
    asm("RRCmBuffer+8");
    asm("RRCmBuffer+7");
    asm("RRCmBuffer+6");
    asm("RRCmBuffer+5");
    asm("RRCmBuffer+4");
    asm("RRCmBuffer+3");
    asm("RRCmBuffer+2");
    asm("RRCmBuffer+1");
    asm("RRCmBuffer");

现在要改到KEILC51中,用于STC8A上去, C该怎么表达, 或者汇编该怎么弄呢? 

我试了下老C51的汇编插入进去,
#pragma asm
     RLC A
#pragma endasm
它奶奶的, 还报错哟~~~~  
 : error C272: 'asm/endasm' requires src-control to be active

xiaoyigechaos 发表于 2018-6-14 22:06:13

_crol_(temp,1);

小李非刀 发表于 2018-6-14 23:10:53

用C语言就不应该再用带CY移位的处理,51的汇编倒是很容易方便,楼主贴的“其它环境中”也是嵌入的汇编。
我一般是接收满1个字节,就保存一个字节,超简单,效率高。大概代码意思如下:
假设是P1.0输入的位信号:
dat = dat >> 1;
if(P10)dat |= 0x80;
if(++bit_cnt >=8)   //满一个字节
{
   rxbuf = dat;
rxcnt++;
bit_cnt = 0;
}

ltby00 发表于 2018-6-15 13:33:36

小李非刀 发表于 2018-6-14 23:10
用C语言就不应该再用带CY移位的处理,51的汇编倒是很容易方便,楼主贴的“其它环境中”也是嵌入的汇编。
我 ...

   因为这里时序要求严格, 记得当时也是像你说的这么处理的,但是最后测试还是我那样处理的效率高,所以就这么用了

C51中要看转汇编的效率了!
KEIL C51C中嵌入汇编的格式是怎么弄的呢? 什么格式?  班主!

ltby00 发表于 2018-6-15 15:34:31

而且用汇编很容易计算出 消耗的时间

su33691 发表于 2018-6-15 16:06:29

对时序要求严格的应用,汇编是第一选择。

ltby00 发表于 2018-6-15 19:11:24

su33691 发表于 2018-6-15 16:06
对时序要求严格的应用,汇编是第一选择。

是的, 话说c51插入汇编的格式是怎样的呢?

su33691 发表于 2018-6-15 19:44:59

在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码:
#pragma ASM
; Assembler Code Here
#pragma ENDASM

在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,
点击右边的“Generate Assembler SRC File”和
“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;

根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil\C51\Lib\C51S.Lib)加入工程中, 该文件必须作为工程的最后文件;
一定要将c:\keil\C51下的STARTUP.A51文件加入项目
4、编译,即可生成目标代码。

ltby00 发表于 2018-6-16 11:29:27

su33691 发表于 2018-6-15 19:44
在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码:
#pragma ASM
; Assembler Code Here


#pragma ASM
; Assembler Code Here
#pragma ENDASM
谢谢, 编译没有提示错误了
 新建工程就有这个文件 c:\keil\C51下的STARTUP.A51 
我没有管 Keil\C51\Lib\C51S.Lib  这个文件目前嵌入的汇编没有错误!
还有其它一堆错误要改,移植~~~  

neutronlmk 发表于 2019-4-2 12:10:28

小李非刀 发表于 2018-6-14 23:10
用C语言就不应该再用带CY移位的处理,51的汇编倒是很容易方便,楼主贴的“其它环境中”也是嵌入的汇编。
我 ...

如此操作,又得多加一全局变量了。
页: [1]
查看完整版本: STC8A的移位问题,代码该怎么表达请教?