免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2767 | 回复: 2
打印 上一主题 下一主题

转一段代码,大家给看看什么意思,没看懂啊!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-16 16:47 |只看该作者 |倒序浏览
本帖最后由 cskyrain 于 2011-04-16 16:49 编辑

都说这段代码很经典,不过偶都没看懂什么意思,{:3_199:} 那位给分析下
————————————————————————————————————————————————分割线
我自认为在嵌入式方面C程序能力还算得上马马虎虎,前段时间有个项目从别的组转过来,项目需要对ARM代码进行解释执行,拿到源代码吓我一大跳,因为当时移交的人谈不上是经验丰富,可源代码体现的水平远超过我。(后来证实这是个误会,代码是另外的厉害角色参考网上代码修改而得)
  1. //ADD(1) -- Page A7-5 | Rd = Rn + immed3 | Syntax -- ADD <Rd>, <Rn>, #<immed_3>
  2. static _short inst_ADD_1(_ushort inst)
  3. {
  4. _ushort immed_3;
  5. _ushort d,n;
  6. _long64 Rn;
  7. _long64 Result;

  8. d = inst & 0x0007;
  9. n = (inst >> 3) & 0x0007;
  10. immed_3 = (inst >> 6) & 0x0007;

  11. Rn = toe_r[n];

  12. Result = Rn + immed_3;

  13. set_NZ_flag( (_long)Result );
  14. set_C_flag_add( Result, toe_r[n], immed_3 );
  15. set_V_flag_add( (_long)Result, toe_r[n], immed_3);

  16. toe_r[d] = (_long)Result;

  17. #ifdef PRINT_TRACE_DETAIL
  18. PRINT_ADDR_MNEMONICS;
  19. //fprintf(stream,"ADD R%d, R%d, #%d\n", d, n, immed_3);
  20. _S("ADD R"); _D(d); _S(", R"); _D(n); _S(", #"); _D(immed_3);
  21. _S("\n");
  22. PRINT_REGS;
  23. #endif

  24. return 0;
  25. }
复制代码
上面例子是对ARM的一种加法进行解释,因为只是一个子函数,不能完全体现代码质量,不过你可以假定一下如果是你,你会怎么写?如果你看不到差距,一种情况是你的程序水平确实相当的高,另一种是你对自己的程序能力认识过高,再有一种情况就是我的程序水平太差。

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
2 [报告]
发表于 2011-04-16 23:29 |只看该作者
不懂的人飘过 ~

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:56:11
3 [报告]
发表于 2011-04-18 09:05 |只看该作者
toe_r這個裏頭放的什麽,暫時沒有看出有什麽玄機
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP