芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 28889|回复: 3

for(;;)

[复制链接]
  • TA的每日心情
    开心
    2020-1-6 12:29
  • 19

    主题

    37

    帖子

    543

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    543
    发表于 2018-5-11 09:29:03 | 显示全部楼层 |阅读模式
    本帖最后由 纵情随心 于 2018-5-28 10:15 编辑

          请描述下你对for(;;)的理解。。。。。。。
         有人要来讨论下这个问题吗。我只知道这个变成汇编后如下:
          for1.png


    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-6-29 15:57
  • 13

    主题

    246

    帖子

    3625

    积分

    超级版主

    Rank: 8Rank: 8

    积分
    3625
    发表于 2018-5-11 14:23:07 | 显示全部楼层
    不占用寄存器,而且没有判断跳转,在底层看来无比简洁
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 422

    主题

    780

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15847
    QQ
    发表于 2018-5-28 09:14:25 | 显示全部楼层
    楼主高级秀呀,蒂花之秀
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-8-16 10:46
  • 0

    主题

    1

    帖子

    3

    积分

    新手入门

    Rank: 1

    积分
    3
    发表于 2021-8-16 10:49:34 | 显示全部楼层
    编译前                    编译后
    while (1);          mov eax,1  
                               test eax,eax
                               je foo+23h
                               jmp foo+18h
    for(;;);                  jmp foo+23h
    对比之下,for (;;)指令少,不占用寄存器,而且没有判断跳转,比while (1)好。也就是说两者在在宏观上完全一样的逻辑,但是底层完全不一样,for相对于来说更加简洁明了。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-4-20 04:55 , Processed in 0.153938 second(s), 38 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表