首页 > 其他 > 详细

基于gcc编译的for(C)解释

时间:2020-11-24 17:07:43      阅读:26      评论:0      收藏:0      [点我收藏+]

for语句的构成

  • 初始语句
  • 条件跳转语句
  • 变条语句
  • 执行语句
    c源码
    for(i=0;i<5;i++){
        int a =2; 
    } 

汇编

1    movl    $0, -8(%rbp)
2    jmp .L4 
3.L5:
4    movl    $2, -4(%rbp)
5    addl    $1, -8(%rbp)
6.L4:
7    cmpl    $4, -8(%rbp)
8    jle .L5 
语句 c语言 gcc汇编语言
初始语句 i=0 movl $0, -8(%rbp)
条件跳转语句 i<5 cmpl $4, -8(%rbp); jle .L5
变条语句 i++ addl $1, -8(%rbp)
执行语句 a =2 movl $2, -4(%rbp)

汇编语言解释:

  • mov 赋值;
  • cmp 比较;
  • add 加法;
  • -n(%rbp) n:偏移量 rbp:栈寄存器;
  • $n :字面量(常量)
  • jle 与cmp 配合使用 :小于或等于;
  • jmp 类似与goto语句
graph TB a[初始语句]-->b[条件跳转语句] c-->d[变条语句] d-->b b--yes-->c[执行语句]

基于gcc编译的for(C)解释

原文:https://www.cnblogs.com/haoge2000/p/14030962.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!