so true

          心懷未來(lái),開(kāi)創(chuàng)未來(lái)!
          隨筆 - 160, 文章 - 0, 評(píng)論 - 40, 引用 - 0
          數(shù)據(jù)加載中……

          看懂objdump的at&t匯編

          我們通過(guò)objdump得到的匯編都是AT&T格式的匯編,所以看起來(lái)有些不習(xí)慣,
          objdump -S -l -j .text -d t218
          如果想看intel格式的匯編,可以使用:objdump -S -l -j .text -d -Mintel t218

          objdump:http://zhwen.org/?p=articles/gnutools
          標(biāo)志位:http://apps.hi.baidu.com/share/detail/15615599
          跳轉(zhuǎn)指令:http://200830740306.javaeye.com/blog/645018
          寄存器說(shuō)明:http://sourceware.org/binutils/docs-2.21/as/i386_002dRegs.html#i386_002dRegs
          尋址方式:http://wwwcsif.cs.ucdavis.edu/~davis/50/att-syntax.htm
          at&t匯編:
          《Programming Ground Up》的Appendix B (url: http://webster.cs.ucr.edu/AsmTools/Gas/ProgrammingGroundUp.pdf)
          http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax
          http://www.sig9.com/articles/att-syntax
          http://blog.csdn.net/chenyu424242/archive/2007/09/23/1797334.aspx
          http://hi.baidu.com/yanyulou/blog/item/2698c1fd5d07dc40d6887d04.html

          intel的匯編格式是從右向左,例如 mov    edx,0x80485a7
          esp用于指示棧空間的棧頂,push會(huì)減少esp的值,pop會(huì)增加esp的值;
          ebp通常先從esp賦值,然后用于操縱棧上的操作數(shù)。
          je和jz是等同的,jne和jnz是等同的,如果檢測(cè)一個(gè)數(shù)是否為0,經(jīng)常會(huì)這么用:
          test eax,eax
          je 0x234af23
          al,ah,ax,eax,rax依次為:最低位byte;次低位byte,低2位bytes,低4位bytes,8位bytes
          movzx  eax,BYTE PTR [rax+0x10],movzx用于將寬度窄的數(shù)值放到寬度大的寄存器里,寬度大的寄存器中的高位會(huì)被0填充

          http://blog.csdn.net/xuzhina/article/details/45178305   記錄了一次完整的調(diào)試匯編過(guò)程

          posted on 2011-03-22 14:54 so true 閱讀(1320) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 泸溪县| 江都市| 门源| 大洼县| 安达市| 北海市| 镶黄旗| 虹口区| 潼南县| 重庆市| 垫江县| 兴山县| 平远县| 资阳市| 浦北县| 洱源县| 共和县| 波密县| 铜梁县| 岑溪市| 汝阳县| 邳州市| 西宁市| 孝感市| 固原市| 济宁市| 武乡县| 龙川县| 黄石市| 长白| 桂阳县| 乌海市| 乡城县| 霸州市| 凌云县| 共和县| 镇江市| 青田县| 许昌市| 新化县| 衢州市|