彙編和反組譯碼的區別

來源:互聯網
上載者:User

標籤:彙編和反組譯碼的區別

在linux系統下編寫如下代碼:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/74/95/wKiom1YiRNzSWe5FAAAPiXZ4JAg425.gif" title="c函數.gif" alt="wKiom1YiRNzSWe5FAAAPiXZ4JAg425.gif" />

通過指令:gcc -S main.c 將產生main.s檔案即就彙編檔案(在上篇部落格我已提到過)。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/74/92/wKioL1YiRZrTFol4AAApnZKv7gc126.gif" title="彙編.gif" alt="wKioL1YiRZrTFol4AAApnZKv7gc126.gif" />

通過指令:gcc -c main.c 產生main.o(二進位檔案)

再通過指令:objdump -d main.o產生反組譯碼

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/74/95/wKiom1YiRn2hj-x5AAA17eql_jo005.gif" title="反組譯碼.gif" alt="wKiom1YiRn2hj-x5AAA17eql_jo005.gif" />

反組譯碼是基於機器代碼的檔案中的位元組序列來確定彙編的代碼。

左邊為位元組序列值,右邊為反組譯碼代碼。

通過上面的比較可以得出下面結論;

1、從代碼上看彙編和反組譯碼的指令基本一樣。

2、彙編操作的立即數是十進位,二反組譯碼操作的立即數是十六進位(即就是左邊序列的某個值)。

3、彙編和反組譯碼操作(寄存器或儲存空間)的地址也不同。

總結:

其實很我是這樣理解的,不知道對不對。

大家都吃過肉吧?彙編和反組譯碼就是豬和肉的關係。自己理解。。不知道對不對。希望指正。

彙編和反組譯碼的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.