日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

汇编包含C代码

發布時間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编包含C代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

反匯編的時候帶上C代碼便于觀察

?

比較三元表達式和if else的差異

a1.c

#include <stdio.h>  int main(void)  
{  
int a=1;
int b=2;
int c=0;
a = (b>c)?1:0;
return 0;
}


a2.c

#include <stdio.h>  int main(void)  
{  
int a=1;
int b=2;
int c=0;
if(b>c)
{
a=1;
}
else
{
a=0;
}
return 0;
} 

?

編譯

#gcc -g a1.c

反匯編

#objdump -dS a.out

#include <stdio.h>  int main(void)  
{  8048394:       55                      push   %ebp8048395:       89 e5                   mov    %esp,%ebp8048397:       83 ec 10                sub    $0x10,%esp
int a=1;804839a:       c7 45 f4 01 00 00 00    movl   $0x1,-0xc(%ebp)
int b=2;80483a1:       c7 45 f8 02 00 00 00    movl   $0x2,-0x8(%ebp)
int c=0;80483a8:       c7 45 fc 00 00 00 00    movl   $0x0,-0x4(%ebp)
a = (b>c)?1:0;80483af:       8b 45 f8                mov    -0x8(%ebp),%eax80483b2:       3b 45 fc                cmp    -0x4(%ebp),%eax80483b5:       0f 9f c0                setg   %al80483b8:       0f b6 c0                movzbl %al,%eax80483bb:       89 45 f4                mov    %eax,-0xc(%ebp)
return 0;80483be:       b8 00 00 00 00          mov    $0x0,%eax
}  80483c3:       c9                      leave  80483c4:       c3                      ret    80483c5:       90                      nop


?

編譯

#gcc -g a2.c
反匯編

#objdump -dS a.out

#include <stdio.h>  int main(void)  
{  8048394:       55                      push   %ebp8048395:       89 e5                   mov    %esp,%ebp8048397:       83 ec 10                sub    $0x10,%esp
int a=1;804839a:       c7 45 f4 01 00 00 00    movl   $0x1,-0xc(%ebp)
int b=2;80483a1:       c7 45 f8 02 00 00 00    movl   $0x2,-0x8(%ebp)
int c=0;80483a8:       c7 45 fc 00 00 00 00    movl   $0x0,-0x4(%ebp)
if(b>c)80483af:       8b 45 f8                mov    -0x8(%ebp),%eax80483b2:       3b 45 fc                cmp    -0x4(%ebp),%eax80483b5:       7e 09                   jle    80483c0 <main+0x2c>
{
a=1;80483b7:       c7 45 f4 01 00 00 00    movl   $0x1,-0xc(%ebp)80483be:       eb 07                   jmp    80483c7 <main+0x33>
}
else
{
a=0;80483c0:       c7 45 f4 00 00 00 00    movl   $0x0,-0xc(%ebp)
}
return 0;80483c7:       b8 00 00 00 00          mov    $0x0,%eax
}  80483cc:       c9                      leave  80483cd:       c3                      ret    80483ce:       90                      nop

總結

以上是生活随笔為你收集整理的汇编包含C代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。