[STM8] C语言表示法

[复制链接]
1337|6
 楼主| h_12345 发表于 2016-10-5 17:36 | 显示全部楼层 |阅读模式

tab2_LOOP6:
                TNZ _TIM1_SR1
                JRNE        tab2_LOOP1
                LDW X,#$0001
                JRT tab2_LOOP2
        tab2_LOOP1:               
                CLRW        X
        tab2_LOOP2:
                RRWA        X,A
                BCP A,#$20
                JRNE        tab2_LOOP6
如题,STM8S的汇编程序,如用C语言如何表示?
xyz549040622 发表于 2016-10-5 21:46 | 显示全部楼层
汇编没研究过。
cool_coder 发表于 2016-10-6 10:46 | 显示全部楼层
本帖最后由 cool_coder 于 2016-10-6 10:53 编辑

直接转成C大概是这样的:
  1.         ...
  2. tab2_LOOP6:
  3.         if(_TIM1_SR1){
  4.                 goto tab2_LOOP1;
  5.         }
  6.         X = 0x0001;
  7.         goto tab2_LOOP2;
  8. tab2_LOOP1:
  9.         X = 0;
  10. tab2_LOOP2:
  11.         A = (unsigned char)(X & 0x00ff);
  12.         if(A & 0x20){
  13.                 goto tab2_LOOP6;
  14.         }
cool_coder 发表于 2016-10-6 10:47 | 显示全部楼层
本帖最后由 cool_coder 于 2016-10-6 11:30 编辑

不过上面的代码风格依然像汇编,可以再向C靠拢一下:
  1.         ...
  2.         WORD wTemp;
  3.         do{
  4.                 if(_TIM1_SR1){
  5.                         wTemp = 0;
  6.                 }else{
  7.                         wTemp = 1;
  8.                 }
  9.         }while(wTemp & 0x0020);
cool_coder 发表于 2016-10-6 11:04 | 显示全部楼层
程序好像有点问题?循环条件貌似永远不会成立。你确定 “JRNE tab2_LOOP6” 有机会执行?
大道至简 发表于 2016-10-8 16:28 | 显示全部楼层
天书看不懂哦
quray1985 发表于 2016-10-9 14:43 | 显示全部楼层
这个属于汇编语言吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

42

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部