以下是来自C++的。
.file "b.cpp"
.def ___main; .scl 2; .type 32; .endef
.text
.align 2
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
movl $0, %eax
addl $15, %eax
addl $15, %eax
shrl $4, %eax
sall $4, %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
call __alloca
call ___main
movl $0, %eax
leave
ret
以下代码来自Java的
.file "c.class"
.stabs "E:/C++/MingW/temp/",100,0,0,Ltext0
.stabs "c.class",100,0,0,Ltext0
.text
Ltext0:
.stabs "gcc2_compiled.",60,0,0,0
.stabs "java.lang.Class:T(0,1)=s120!1,020,(0,2)=xsjava.lang.Object:;next:/0(0,3)=*(0,1),32,32;name:/0(0,4)=*(0,5)=s4hash:(0,6)=@s16;r(0,6);0;65535;,0,16;length:(0,6),16,16;;,64,32;accflags:/0(0,6),96,16;superclass:/0(0,3),128,32;constants:/0(0,7)=s12size:(0,8)=r(0,8);0000000000000;0037777777777;,0,32;tags:(0,9)=*(0,10)=(0,10),32,32;data:(0,9),64,32;;,160,96;methods:/0(0,11)=*(0,12)=s20name:(0,4),0,32;signature:(0,4),32,32;accflags:(0,6),64,16;index:(0,6),80,16;ncode:(0,9),96,32;throws:(0,9),128,32;;,256,32;method_count:/0(0,13)=@s16;r(0,13);-32768;32767;,288,16;vtable_method_count:/0(0,13),304,16;fields:/0(0,14)=*(0,15)=s16name:(0,4),0,32;type:(0,3),32,32;accflags:(0,6),64,16;bsize:(0,6),80,16;info:(0,16)=u4boffset:(0,17)=r(0,17);-2147483648;2147483647;,0,32;addr:(0,9),0,32;;,96,32;;,320,32;size_in_bytes:/0(0,17),352,32;field_count:/0(0,13),384,16;static_field_count:/0(0,13),400,16;vtable:/0(0,18)=*(0,19)=s12class:(0,3),0,32;methods:(0,20)=ar(0,21)=r(0,21);0000000000000;0037777777777;;0;1;(0,9),32,64;;,416,32;otable:/0(0,22)=*(0,23)=ar(0,21);0;1;(0,17),448,32;otable_syms:/0(0,24)=*(0,25)=ar(0,21);0;1;(0,26)=s12clname:(0,4),0,32;name:(0,4),32,32;signature:(0,4),64,32;;,480,32;atable:/0(0,27)=*(0,20),512,32;atable_syms:/0(0,24),544,32;catch_classes:/0(0,9),576,32;interfaces:/0(0,28)=*(0,3),608,32;loader:/0(0,9),640,32;interface_count:/0(0,13),672,16;state:/0(0,29)=@s8;r(0,29);-128;127;,688,8;thread:/0(0,9),704,32;depth:/0(0,13),736,16;ancestors:/0(0,9),768,32;idt:/0(0,9),800,32;arrayclass:/0(0,9),832,32;protectionDomain:/0(0,9),864,32;hack_signers:/0(0,9),896,32;chain:/0(0,9),928,32;;",128,0,0,0
.stabs "java.lang.Class:Tt(0,1)",128,0,0,0
.stabs "java.lang.Object:Tt(0,2)=s4vtable:/0(0,18),0,32;;",128,0,0,0
.stabs "double:t(0,30)=r(0,17);8;0;",128,0,0,0
.stabs "float:t(0,31)=r(0,17);4;0;",128,0,0,0
.stabs "promoted_boolean:t(0,32)=@s32;-16;",128,0,0,0
.stabs "promoted_char:t(0,33)=@s32;-20;",128,0,0,0
.stabs "promoted_short:t(0,34)=r(0,34);-2147483648;2147483647;",128,0,0,0
.stabs "promoted_byte:t(0,35)=r(0,35);-2147483648;2147483647;",128,0,0,0
.stabs "boolean:t(0,36)=@s8;-16;",128,0,0,0
.stabs "char:t(0,37)=@s16;-20;",128,0,0,0
.stabs "void:t(0,10)",128,0,0,0
.stabs "unsigned long:t(0,38)=@s64;r(0,38);0000000000000;01777777777777777777777;",128,0,0,0
.stabs "unsigned int:t(0,8)",128,0,0,0
.stabs "unsigned short:t(0,6)",128,0,0,0
.stabs "unsigned byte:t(0,39)=@s8;r(0,39);0;255;",128,0,0,0
.stabs "long:t(0,40)=@s64;r(0,40);01000000000000000000000;0777777777777777777777;",128,0,0,0
.stabs "int:t(0,17)",128,0,0,0
.stabs "short:t(0,13)",128,0,0,0
.stabs "byte:t(0,29)",128,0,0,0
.align 2
.stabs "c.java",130,0,0,0
.stabs "_ZN1c4mainEP6JArrayIPN4java4lang6StringEE:F(0,10)",36,0,0,__ZN1c4mainEP6JArrayIPN4java4lang6StringEE
.globl __ZN1c4mainEP6JArrayIPN4java4lang6StringEE
.def __ZN1c4mainEP6JArrayIPN4java4lang6StringEE; .scl 2; .type 32; .endef
__ZN1c4mainEP6JArrayIPN4java4lang6StringEE:
.stabn 68,0,0,LM1-__ZN1c4mainEP6JArrayIPN4java4lang6StringEE
LM1:
LFB2:
pushl %ebp
LCFI0:
movl %esp, %ebp
LCFI1:
subl $8, %esp
LCFI2:
movl $__ZN1c6class$E, (%esp)
call __Jv_InitClass
leave
ret
LFE2:
Lscope0:
.stabs "",36,0,0,Lscope0-__ZN1c4mainEP6JArrayIPN4java4lang6StringEE
.align 2
.stabs "_ZN1cC1Ev:F(0,10)",36,0,0,__ZN1cC1Ev
.globl __ZN1cC1Ev
.def __ZN1cC1Ev; .scl 2; .type 32; .endef
__ZN1cC1Ev:
.stabn 68,0,0,LM2-__ZN1cC1Ev
LM2:
LFB3:
pushl %ebp
LCFI3:
movl %esp, %ebp
LCFI4:
subl $8, %esp
LCFI5:
movl 8(%ebp), %eax
movl %eax, (%esp)
call __ZN4java4lang6ObjectC1Ev
leave
ret
LFE3:
Lscope1:
.stabs "",36,0,0,Lscope1-__ZN1cC1Ev
.section .rdata,"dr"
.align 2
__Utf1:
.word 1465
.word 4
.ascii "main"
.space 1
.align 2
__Utf2:
.word 59434
.word 22
.ascii "([Ljava.lang.String;)V"
.space 1
.align 2
__Utf3:
.word 626
.word 6
.ascii "<init>"
.space 1
.align 2
__Utf4:
.word 39797
.word 3
.ascii "()V"
.space 1
.data
.align 32
__MT_c:
.long __Utf1
.long __Utf2
.word 16393
.word -1
.long __ZN1c4mainEP6JArrayIPN4java4lang6StringEE
.long 0
.long __Utf3
.long __Utf4
.word 16384
.word -1
.long __ZN1cC1Ev
.long 0
.globl __ZTVN1cE
.align 32
__ZTVN1cE:
.long 0
.long 0
.long __ZN1c6class$E
.long 4
.long __ZN4java4lang6Object8finalizeEv
.long __ZN4java4lang6Object8hashCodeEv
.long __ZN4java4lang6Object6equalsEPS1_
.long __ZN4java4lang6Object8toStringEv
.long __ZN4java4lang6Object5cloneEv
.align 4
__catch_classes_c:
.long 0
.long 0
.long 0
.long 0
.space 8
.section .rdata,"dr"
.align 2
__Utf5:
.word 99
.word 1
.ascii "c"
.space 1
.globl __ZN1c6class$E
.data
.align 32
__ZN1c6class$E:
.long __ZTVN4java4lang5ClassE+8
.long 0
.long __Utf5
.word 32
.space 2
.long __ZN4java4lang6Object6class$E
.long 0
.long 0
.long 0
.long __MT_c
.word 2
.word 5
.long 0
.long 4
.word 0
.word 0
.long __ZTVN1cE+8
.long 0
.long 0
.long 0
.long 0
.long __catch_classes_c
.long 0
.long 0
.word 0
.byte 0
.space 1
.long 0
.word 0
.space 2
.long 0
.long 0
.long 0
.long 0
.long 0
.long 0
.stabs "c:Tt(1,1)=s4!1,020,(0,2);main::(1,2)=f(0,10):_ZN1c4mainEP6JArrayIPN4java4lang6StringEE;2A?;<init>::(1,3)=#(1,1),(0,10),(1,4)=*(1,1),(0,10);:_ZN1cC1Ev;2A.;;",128,0,0,0
.stabn 162,0,0,0
.def __Jv_RegisterClass; .scl 2; .type 32; .endef
.text
.align 2
.stabs "_GLOBAL__I__ZN1c4mainEP6JArrayIPN4java4lang6StringEE:f(0,10)",36,0,0,__GLOBAL__I__ZN1c4mainEP6JArrayIPN4java4lang6StringEE
.def __GLOBAL__I__ZN1c4mainEP6JArrayIPN4java4lang6StringEE; .scl 3; .type 32; .endef
__GLOBAL__I__ZN1c4mainEP6JArrayIPN4java4lang6StringEE:
.stabn 68,0,0,LM3-__GLOBAL__I__ZN1c4mainEP6JArrayIPN4java4lang6StringEE
LM3:
LFB4:
pushl %ebp
LCFI6:
movl %esp, %ebp
LCFI7:
subl $24, %esp
LCFI8:
movl $__ZN1c6class$E, (%esp)
call __Jv_RegisterClass
leave
ret
LFE4:
Lscope2:
.stabs "",36,0,0,Lscope2-__GLOBAL__I__ZN1c4mainEP6JArrayIPN4java4lang6StringEE
.section .ctors,"w"
.align 4
.long __GLOBAL__I__ZN1c4mainEP6JArrayIPN4java4lang6StringEE
.text
.stabs "",100,0,0,Letext
Letext:
.def __ZN4java4lang6Object5cloneEv; .scl 3; .type 32; .endef
.def __ZN4java4lang6Object8toStringEv; .scl 3; .type 32; .endef
.def __ZN4java4lang6Object6equalsEPS1_; .scl 3; .type 32; .endef
.def __ZN4java4lang6Object8hashCodeEv; .scl 3; .type 32; .endef
.def __ZN4java4lang6Object8finalizeEv; .scl 3; .type 32; .endef
.def __ZN4java4lang6ObjectC1Ev; .scl 3; .type 32; .endef
.def __Jv_InitClass; .scl 3; .type 32; .endef
以上结果是由GCC产生的,仅供参考。