通過反組譯碼一個簡單的C程式,分析彙編代碼理解電腦是如何工作的

來源:互聯網
上載者:User

標籤:

實驗一:通過反組譯碼一個簡單的C程式,分析彙編代碼理解電腦是如何工作的

學號:20135114

姓名:王朝憲

註: 原創作品轉載請註明出處   《Linux核心分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000

1

1)實驗部分(以下命令為實驗樓64位Linux虛擬機器環境下適用,32位Linux環境可能會稍有不同)

使用

  1. gcc –S –o main.s main.c -m32

 

命令編譯成彙編代碼,如下代碼中的數字請自行修改以防與他人雷同

 

  1. int g(int x)
  2. {
  3.   return x + 3;
  4. }
  5.  
  6. int f(int x)
  7. {
  8.   return g(x);
  9. }
  10.  
  11. int main(void)
  12. {
  13.   return f(8) + 1;
  14. }

 

圖一:簡單的c程式碼

圖二:實驗樓操作過程

圖三:通過反組譯碼c程式而產生的彙編代碼

 

2)根據本周所學知識分析彙編代碼的工作過程,撰寫一篇署名部落格,並在部落格文章中註明“真實姓名(與最後申請認證的姓名務必一致) + 原創作品轉載請註明出處 + 《Linux核心分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000 ”,部落格內容的具體要求如下:

  •  

    題目自擬,內容圍繞電腦是如何工作的進行;

  •  

    部落格中需要使用實驗

  •  

    部落格內容中需要仔細分析彙編代碼的工作過程中堆棧的變化

  •  

    總結部分需要闡明自己對“電腦是如何工作的”理解。

 

程式碼分析:彙編代碼工作過程中的堆棧變化

 

 總結:儲存程式電腦模型為馮諾依曼體繫結構,電腦的CPU從IP所指向的記憶體中的程式碼片段取一條指令執行,執行完IP自加1,再繼續執行下一條,這就是電腦的工作過程。

3)請提交部落格文章URL到網易雲課堂MOOC平台,編輯成一個連結可以直接點擊開啟。

通過反組譯碼一個簡單的C程式,分析彙編代碼理解電腦是如何工作的

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.