node-gyp-boilerplate/hello.asm

280 lines
12 KiB
NASM

build/Release/hello.node: file format elf64-x86-64
Disassembly of section .init:
00000000000007b8 <_init>:
7b8: 48 83 ec 08 sub $0x8,%rsp
7bc: 48 8b 05 2d 08 20 00 mov 0x20082d(%rip),%rax # 200ff0 <__gmon_start__>
7c3: 48 85 c0 test %rax,%rax
7c6: 74 02 je 7ca <_init+0x12>
7c8: ff d0 callq *%rax
7ca: 48 83 c4 08 add $0x8,%rsp
7ce: c3 retq
Disassembly of section .plt:
00000000000007d0 <.plt>:
7d0: ff 35 32 08 20 00 pushq 0x200832(%rip) # 201008 <_GLOBAL_OFFSET_TABLE_+0x8>
7d6: ff 25 34 08 20 00 jmpq *0x200834(%rip) # 201010 <_GLOBAL_OFFSET_TABLE_+0x10>
7dc: 0f 1f 40 00 nopl 0x0(%rax)
00000000000007e0 <napi_get_cb_info@plt>:
7e0: ff 25 32 08 20 00 jmpq *0x200832(%rip) # 201018 <napi_get_cb_info>
7e6: 68 00 00 00 00 pushq $0x0
7eb: e9 e0 ff ff ff jmpq 7d0 <.plt>
00000000000007f0 <napi_set_named_property@plt>:
7f0: ff 25 2a 08 20 00 jmpq *0x20082a(%rip) # 201020 <napi_set_named_property>
7f6: 68 01 00 00 00 pushq $0x1
7fb: e9 d0 ff ff ff jmpq 7d0 <.plt>
0000000000000800 <napi_module_register@plt>:
800: ff 25 22 08 20 00 jmpq *0x200822(%rip) # 201028 <napi_module_register>
806: 68 02 00 00 00 pushq $0x2
80b: e9 c0 ff ff ff jmpq 7d0 <.plt>
0000000000000810 <napi_create_int32@plt>:
810: ff 25 1a 08 20 00 jmpq *0x20081a(%rip) # 201030 <napi_create_int32>
816: 68 03 00 00 00 pushq $0x3
81b: e9 b0 ff ff ff jmpq 7d0 <.plt>
0000000000000820 <napi_get_value_int32@plt>:
820: ff 25 12 08 20 00 jmpq *0x200812(%rip) # 201038 <napi_get_value_int32>
826: 68 04 00 00 00 pushq $0x4
82b: e9 a0 ff ff ff jmpq 7d0 <.plt>
0000000000000830 <napi_throw_error@plt>:
830: ff 25 0a 08 20 00 jmpq *0x20080a(%rip) # 201040 <napi_throw_error>
836: 68 05 00 00 00 pushq $0x5
83b: e9 90 ff ff ff jmpq 7d0 <.plt>
0000000000000840 <napi_create_function@plt>:
840: ff 25 02 08 20 00 jmpq *0x200802(%rip) # 201048 <napi_create_function>
846: 68 06 00 00 00 pushq $0x6
84b: e9 80 ff ff ff jmpq 7d0 <.plt>
Disassembly of section .plt.got:
0000000000000850 <.plt.got>:
850: ff 25 7a 07 20 00 jmpq *0x20077a(%rip) # 200fd0 <__cxa_finalize@GLIBC_2.2.5>
856: 66 90 xchg %ax,%ax
Disassembly of section .text:
0000000000000860 <_register_hello>:
860: 55 push %rbp
861: 48 8d 3d 18 08 20 00 lea 0x200818(%rip),%rdi # 201080 <_module>
868: 48 89 e5 mov %rsp,%rbp
86b: 5d pop %rbp
86c: e9 8f ff ff ff jmpq 800 <napi_module_register@plt>
871: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
878: 00 00 00
87b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
0000000000000880 <deregister_tm_clones>:
880: 48 8d 3d 41 08 20 00 lea 0x200841(%rip),%rdi # 2010c8 <_edata>
887: 48 8d 05 41 08 20 00 lea 0x200841(%rip),%rax # 2010cf <_edata+0x7>
88e: 55 push %rbp
88f: 48 29 f8 sub %rdi,%rax
892: 48 89 e5 mov %rsp,%rbp
895: 48 83 f8 0e cmp $0xe,%rax
899: 76 15 jbe 8b0 <deregister_tm_clones+0x30>
89b: 48 8b 05 46 07 20 00 mov 0x200746(%rip),%rax # 200fe8 <_ITM_deregisterTMCloneTable>
8a2: 48 85 c0 test %rax,%rax
8a5: 74 09 je 8b0 <deregister_tm_clones+0x30>
8a7: 5d pop %rbp
8a8: ff e0 jmpq *%rax
8aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
8b0: 5d pop %rbp
8b1: c3 retq
8b2: 0f 1f 40 00 nopl 0x0(%rax)
8b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
8bd: 00 00 00
00000000000008c0 <register_tm_clones>:
8c0: 48 8d 3d 01 08 20 00 lea 0x200801(%rip),%rdi # 2010c8 <_edata>
8c7: 48 8d 35 fa 07 20 00 lea 0x2007fa(%rip),%rsi # 2010c8 <_edata>
8ce: 55 push %rbp
8cf: 48 29 fe sub %rdi,%rsi
8d2: 48 89 e5 mov %rsp,%rbp
8d5: 48 c1 fe 03 sar $0x3,%rsi
8d9: 48 89 f0 mov %rsi,%rax
8dc: 48 c1 e8 3f shr $0x3f,%rax
8e0: 48 01 c6 add %rax,%rsi
8e3: 48 d1 fe sar %rsi
8e6: 74 18 je 900 <register_tm_clones+0x40>
8e8: 48 8b 05 09 07 20 00 mov 0x200709(%rip),%rax # 200ff8 <_ITM_registerTMCloneTable>
8ef: 48 85 c0 test %rax,%rax
8f2: 74 0c je 900 <register_tm_clones+0x40>
8f4: 5d pop %rbp
8f5: ff e0 jmpq *%rax
8f7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
8fe: 00 00
900: 5d pop %rbp
901: c3 retq
902: 0f 1f 40 00 nopl 0x0(%rax)
906: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
90d: 00 00 00
0000000000000910 <__do_global_dtors_aux>:
910: 80 3d b1 07 20 00 00 cmpb $0x0,0x2007b1(%rip) # 2010c8 <_edata>
917: 75 27 jne 940 <__do_global_dtors_aux+0x30>
919: 48 83 3d af 06 20 00 cmpq $0x0,0x2006af(%rip) # 200fd0 <__cxa_finalize@GLIBC_2.2.5>
920: 00
921: 55 push %rbp
922: 48 89 e5 mov %rsp,%rbp
925: 74 0c je 933 <__do_global_dtors_aux+0x23>
927: 48 8b 3d 32 07 20 00 mov 0x200732(%rip),%rdi # 201060 <__dso_handle>
92e: e8 1d ff ff ff callq 850 <.plt.got>
933: e8 48 ff ff ff callq 880 <deregister_tm_clones>
938: 5d pop %rbp
939: c6 05 88 07 20 00 01 movb $0x1,0x200788(%rip) # 2010c8 <_edata>
940: f3 c3 repz retq
942: 0f 1f 40 00 nopl 0x0(%rax)
946: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
94d: 00 00 00
0000000000000950 <frame_dummy>:
950: 48 8d 3d 61 04 20 00 lea 0x200461(%rip),%rdi # 200db8 <__JCR_END__>
957: 48 83 3f 00 cmpq $0x0,(%rdi)
95b: 75 0b jne 968 <frame_dummy+0x18>
95d: e9 5e ff ff ff jmpq 8c0 <register_tm_clones>
962: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
968: 48 8b 05 71 06 20 00 mov 0x200671(%rip),%rax # 200fe0 <_Jv_RegisterClasses>
96f: 48 85 c0 test %rax,%rax
972: 74 e9 je 95d <frame_dummy+0xd>
974: 55 push %rbp
975: 48 89 e5 mov %rsp,%rbp
978: ff d0 callq *%rax
97a: 5d pop %rbp
97b: e9 40 ff ff ff jmpq 8c0 <register_tm_clones>
0000000000000980 <MyFunction>:
980: 55 push %rbp
981: 45 31 c9 xor %r9d,%r9d
984: 45 31 c0 xor %r8d,%r8d
987: 48 89 e5 mov %rsp,%rbp
98a: 53 push %rbx
98b: 48 89 fb mov %rdi,%rbx
98e: 48 8d 4d e0 lea -0x20(%rbp),%rcx
992: 48 8d 55 d8 lea -0x28(%rbp),%rdx
996: 48 83 ec 28 sub $0x28,%rsp
99a: 48 c7 45 d8 01 00 00 movq $0x1,-0x28(%rbp)
9a1: 00
9a2: c7 45 d4 00 00 00 00 movl $0x0,-0x2c(%rbp)
9a9: e8 32 fe ff ff callq 7e0 <napi_get_cb_info@plt>
9ae: 85 c0 test %eax,%eax
9b0: 0f 85 c4 00 00 00 jne a7a <MyFunction+0xfa>
9b6: 48 8b 75 e0 mov -0x20(%rbp),%rsi
9ba: 48 8d 55 d4 lea -0x2c(%rbp),%rdx
9be: 48 89 df mov %rbx,%rdi
9c1: e8 5a fe ff ff callq 820 <napi_get_value_int32@plt>
9c6: 85 c0 test %eax,%eax
9c8: 0f 85 89 00 00 00 jne a57 <MyFunction+0xd7>
9ce: 44 8b 5d d4 mov -0x2c(%rbp),%r11d
9d2: 41 83 fb 01 cmp $0x1,%r11d
9d6: 0f 8e 9a 00 00 00 jle a76 <MyFunction+0xf6>
9dc: 41 83 eb 01 sub $0x1,%r11d
9e0: 45 31 c9 xor %r9d,%r9d
9e3: 31 f6 xor %esi,%esi
9e5: 45 31 d2 xor %r10d,%r10d
9e8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
9ef: 00
9f0: 41 83 f9 02 cmp $0x2,%r9d
9f4: 41 8d 79 01 lea 0x1(%r9),%edi
9f8: 41 b8 01 00 00 00 mov $0x1,%r8d
9fe: b9 02 00 00 00 mov $0x2,%ecx
a03: 76 1b jbe a20 <MyFunction+0xa0>
a05: 0f 1f 00 nopl (%rax)
a08: 89 f8 mov %edi,%eax
a0a: 99 cltd
a0b: f7 f9 idiv %ecx
a0d: 85 d2 test %edx,%edx
a0f: 45 0f 44 c2 cmove %r10d,%r8d
a13: 83 c1 01 add $0x1,%ecx
a16: 41 39 c9 cmp %ecx,%r9d
a19: 75 ed jne a08 <MyFunction+0x88>
a1b: 45 84 c0 test %r8b,%r8b
a1e: 74 03 je a23 <MyFunction+0xa3>
a20: 83 c6 01 add $0x1,%esi
a23: 44 39 df cmp %r11d,%edi
a26: 41 89 f9 mov %edi,%r9d
a29: 75 c5 jne 9f0 <MyFunction+0x70>
a2b: 48 8d 55 e8 lea -0x18(%rbp),%rdx
a2f: 48 89 df mov %rbx,%rdi
a32: e8 d9 fd ff ff callq 810 <napi_create_int32@plt>
a37: 85 c0 test %eax,%eax
a39: 74 11 je a4c <MyFunction+0xcc>
a3b: 48 8d 15 f0 00 00 00 lea 0xf0(%rip),%rdx # b32 <_fini+0x26>
a42: 31 f6 xor %esi,%esi
a44: 48 89 df mov %rbx,%rdi
a47: e8 e4 fd ff ff callq 830 <napi_throw_error@plt>
a4c: 48 8b 45 e8 mov -0x18(%rbp),%rax
a50: 48 83 c4 28 add $0x28,%rsp
a54: 5b pop %rbx
a55: 5d pop %rbp
a56: c3 retq
a57: 48 8d 15 32 01 00 00 lea 0x132(%rip),%rdx # b90 <_fini+0x84>
a5e: 31 f6 xor %esi,%esi
a60: 48 89 df mov %rbx,%rdi
a63: e8 c8 fd ff ff callq 830 <napi_throw_error@plt>
a68: 44 8b 5d d4 mov -0x2c(%rbp),%r11d
a6c: 41 83 fb 01 cmp $0x1,%r11d
a70: 0f 8f 66 ff ff ff jg 9dc <MyFunction+0x5c>
a76: 31 f6 xor %esi,%esi
a78: eb b1 jmp a2b <MyFunction+0xab>
a7a: 48 8d 15 97 00 00 00 lea 0x97(%rip),%rdx # b18 <_fini+0xc>
a81: 31 f6 xor %esi,%esi
a83: 48 89 df mov %rbx,%rdi
a86: e8 a5 fd ff ff callq 830 <napi_throw_error@plt>
a8b: e9 26 ff ff ff jmpq 9b6 <MyFunction+0x36>
0000000000000a90 <Init>:
a90: 55 push %rbp
a91: 45 31 c0 xor %r8d,%r8d
a94: 31 d2 xor %edx,%edx
a96: 48 89 e5 mov %rsp,%rbp
a99: 41 54 push %r12
a9b: 53 push %rbx
a9c: 4c 8d 4d e8 lea -0x18(%rbp),%r9
aa0: 49 89 f4 mov %rsi,%r12
aa3: 31 f6 xor %esi,%esi
aa5: 48 83 ec 10 sub $0x10,%rsp
aa9: 48 8b 0d 28 05 20 00 mov 0x200528(%rip),%rcx # 200fd8 <MyFunction@@Base+0x200658>
ab0: 48 89 fb mov %rdi,%rbx
ab3: e8 88 fd ff ff callq 840 <napi_create_function@plt>
ab8: 85 c0 test %eax,%eax
aba: 75 3c jne af8 <Init+0x68>
abc: 48 8b 4d e8 mov -0x18(%rbp),%rcx
ac0: 48 8d 15 89 00 00 00 lea 0x89(%rip),%rdx # b50 <_fini+0x44>
ac7: 4c 89 e6 mov %r12,%rsi
aca: 48 89 df mov %rbx,%rdi
acd: e8 1e fd ff ff callq 7f0 <napi_set_named_property@plt>
ad2: 85 c0 test %eax,%eax
ad4: 74 11 je ae7 <Init+0x57>
ad6: 48 8d 15 7f 00 00 00 lea 0x7f(%rip),%rdx # b5c <_fini+0x50>
add: 31 f6 xor %esi,%esi
adf: 48 89 df mov %rbx,%rdi
ae2: e8 49 fd ff ff callq 830 <napi_throw_error@plt>
ae7: 48 83 c4 10 add $0x10,%rsp
aeb: 4c 89 e0 mov %r12,%rax
aee: 5b pop %rbx
aef: 41 5c pop %r12
af1: 5d pop %rbp
af2: c3 retq
af3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
af8: 48 8d 15 b9 00 00 00 lea 0xb9(%rip),%rdx # bb8 <_fini+0xac>
aff: 31 f6 xor %esi,%esi
b01: 48 89 df mov %rbx,%rdi
b04: e8 27 fd ff ff callq 830 <napi_throw_error@plt>
b09: eb b1 jmp abc <Init+0x2c>
Disassembly of section .fini:
0000000000000b0c <_fini>:
b0c: 48 83 ec 08 sub $0x8,%rsp
b10: 48 83 c4 08 add $0x8,%rsp
b14: c3 retq