009 if 判断语句

来源:互联网 发布:网络电影后期制作合同 编辑:程序博客网 时间:2024/05/21 06:25

C语言精彩编程百例 第9个例子 if 判断语句

源程序:

#include<stdio.h>void main(){int x,y,z,mid,dec;printf("请任意输入三个整数:\n");scanf("%d %d %d",&x,&y,&z);if(x<y){mid =x; x=y; y=mid;}if(x<z){mid=x;x=z;z=mid;}if(y<z){mid=y;y=z;z=mid;}printf("请输入一个整数,程序根据其正负判断输出:\n");scanf("%d",&dec);if(dec>=0) printf("最大整数为:%d\n",x);else printf("最小整数为:%d\n",z);}

对应的汇编:

subl$12, %esppushl$LC0call_printfaddl$16, %esp # _scanf 参数传递leal-12(%ebp), %eax  # &zpushl%eaxleal-8(%ebp), %eax   # &ypushl%eaxleal-4(%ebp), %eax   # &xpushl%eaxpushl$LC1call_scanfaddl$16, %esp movl-4(%ebp), %eax # xcmpl-8(%ebp), %eax   # 比较 x,yjgeL4               # 不小于跳movl-4(%ebp), %eax   # xmovl%eax, -16(%ebp)  # mid = xmovl-8(%ebp), %eax   # ymovl%eax, -4(%ebp)   # x = ymovl-16(%ebp), %eax  # midmovl%eax, -8(%ebp)   # y = midL4:movl-4(%ebp), %eax   # xcmpl-12(%ebp), %eax  # 比较 x,zjgeL5               # 不小于跳movl-4(%ebp), %eax   # xmovl%eax, -16(%ebp)  # mid =xmovl-12(%ebp), %eax  # zmovl%eax, -4(%ebp)   # x=zmovl-16(%ebp), %eax  # midmovl%eax, -12(%ebp)  # z= midL5:movl-8(%ebp), %eax   # ycmpl-12(%ebp), %eax  # 比较 y zjgeL6               # 不小于跳movl-8(%ebp), %eax   # ymovl%eax, -16(%ebp)  # mid=ymovl-12(%ebp), %eax  # zmovl%eax, -8(%ebp)   # y=zmovl-16(%ebp), %eax  # midmovl%eax, -12(%ebp)  # z = midL6:subl$12, %esp        pushl$LC2call_printfaddl$16, %espsubl$8, %espleal-20(%ebp), %eax  # &decpushl%eaxpushl$LC3call_scanfaddl$16, %esp        cmpl$0, -20(%ebp)    # 比较dec 和 0jsL7               # 小于跳subl$8, %esp         # printfpushl-4(%ebp)pushl$LC4call_printfaddl$16, %espjmpL3L7:subl$8, %esp         # printfpushl-12(%ebp)pushl$LC5call_printfaddl$16, %espL3:leavere



 

0 0
原创粉丝点击