|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2009-2-2 22:45:44
|
显示全部楼层
梯形图编译的语句表是:
LD X0
OR X1
OUT Y2
OUT Y1
对应的C代码是什么:
__asm (
"movw r5, 0\n"
"movt r5, 0x2204\n"
"ldrb r6, [r5,#0]\n"
"lsl r4, r4,#1\n"
"orr r4, r6\n"
: : :"r4", "r5", "r6"
);
__asm (
"movw r5, 0x4\n"
"movt r5, 0x2204\n"
"ldrb r6, [r5,#0]\n"
"orr r4, r6\n"
: : :"r4", "r5", "r6"
);
__asm (
"movw r5, 0x1008\n"
"movt r5, 0x2204\n"
"tst r4, 0x1\n"
"ite eq\n"
"moveq r6, 0x0\n"
"movne r6, 0x1\n"
"strb r6, [r5],#0\n"
: : :"r4", "r5", "r6"
);
__asm (
"movw r5, 0x1004\n"
"movt r5, 0x2204\n"
"tst r4, 0x1\n"
"ite eq\n"
"moveq r6, 0x0\n"
"movne r6, 0x1\n"
"strb r6, [r5],#0\n"
: : :"r4", "r5", "r6"
);
我是用嵌入式汇编做的
大家可以看到用汇编来做,每条指令的解析是很简单的。不过现在只实现了位指令
本贴被 adolfshxq 编辑过,最后修改时间:2009-02-02,22:47:09. |
|