问题描述
我正在将一些遗留代码迁移到 vxWorks 7.0。 vxWorks 6.9 代码在 ISR 中有以下几行程序集。如果可能,我正在逐行寻求理解以下代码。我对 PPC 汇编和 GNU 的内联语法完全没有经验
__asm__(
"mfdec 3 \n\t" ; I think this may be R3 = DEC timer val
"my_loop:" ; simple label
"add. 3,%0,3 \n\t" ; ?? Add %0+R3=> R3 with Rc=1. What is %0? The ISR is void isr(void) type.
"ble my_loop \n\t" ; branch if <= to my_loop
"mtdec 3 \n\t" ; move R3 content into DEC
: ; from here down I have no idea
: "r" (val)
: "3","cc"
);
- 什么是 %0?
- asm 模板字符串后面的“:”是什么意思?
- 其他行(没有注释)是什么,即:通过“3”、“cc”到底在做什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)