powerpc 交叉编译器objdump生成的汇编,不太懂
如下,我用C写了一个小程序 (int c=a+b), 用交叉编译器gcc编译后生成test,然后用交叉编译器的objdump反汇编,生成如下结果,其中.long是什么意思啊?00000000 <.debug_frame>:
0: 00 00 00 0c .long 0xc
4: ff ff ff ff fnmadd. f31,f31,f31,f31
8: 01 00 01 7c .long 0x100017c
c: 41 0c 01 00 bdnzt-4*cr3+lt,10c <_init-0x10000150>
10: 00 00 00 0c .long 0xc
14: 00 00 00 00 .long 0x0
18: 10 00 04 5c nmachhwo r0,r0,r0
1c: 00 00 00 04 .long 0x4
20: 00 00 00 2c .long 0x2c
24: 00 00 00 00 .long 0x0
28: 10 00 04 60 vmhaddshs v0,v0,v0,v17
2c: 00 00 00 b4 .long 0xb4
30: 44 0e 30 44 .long 0x440e3044
34: 09 41 00 48 tdi 10,r1,72
38: 9e 02 58 9a stbu r16,22682(r2)
3c: 06 99 07 11 .long 0x6990711
40: 41 7f 48 9b bdztla+ 4*cr7+so,4898 <_init-0xfffb9c4>
44: 05 48 9c 04 .long 0x5489c04
48: 4c 9f 01 9d .long 0x4c9f019d
4c: 03 00 00 00 .long 0x3000000
Disassembly of section .gnu.attributes:
回复 #1 harry_he 的帖子
.debug_frame 里并不是指令,而是 DWARF 调试信息的一部分,你可以用 readelf -wF 看 不好意思,贴的部分不对,这里才是正确的。我编译了一个汇编文件,里面就是一些汇编指令的罗列,用as生成二进制文件之后再用objdump -D来反汇编,结果如下:Disassembly of section .text:
00000000 <start>:
0: 4c 00 00 4e .long 0x4c00004e
4: 4c 00 00 cc .long 0x4c0000cc
8: 4c 1f f9 8c .long 0x4c1ff98c
c: 4f e0 01 8c .long 0x4fe0018c
10: 7c 09 57 be .long 0x7c0957be
14: 7c 00 69 dc .long 0x7c0069dc
18: 7c 00 71 9c .long 0x7c00719c
。。。
和PC上的结果差得太多,和原来的汇编语言也不一样 再次不好意思,用objdump -D时需要指定CPU类型,刚才忘了,真是笨
谢谢jzhang928
页:
[1]