strcmp.dump.txt 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. strcmp.bin: file format elf64-x86-64
  2. Disassembly of section .text:
  3. :_start
  4. c6 04 25 e4 01 60 00 # movb $0x54,0x6001e4
  5. 54
  6. c6 04 25 e5 01 60 00 # movb $0x65,0x6001e5
  7. 65
  8. c6 04 25 e6 01 60 00 # movb $0x73,0x6001e6
  9. 73
  10. c6 04 25 e7 01 60 00 # movb $0x74,0x6001e7
  11. 74
  12. c6 04 25 e8 01 60 00 # movb $0x53,0x6001e8
  13. 53
  14. c6 04 25 e9 01 60 00 # movb $0x54,0x6001e9
  15. 54
  16. c6 04 25 ea 01 60 00 # movb $0x72,0x6001ea
  17. 72
  18. 48 c7 c0 04 02 60 00 # mov $0x600204,%rax
  19. e8 3d 00 00 00 # callq 400131 <getstr>
  20. 48 c7 c0 01 00 00 00 # mov $0x1,%rax
  21. 48 c7 c7 01 00 00 00 # mov $0x1,%rdi
  22. 48 c7 c6 04 02 60 00 # mov $0x600204,%rsi
  23. 48 c7 c2 2a 00 00 00 # mov $0x2a,%rdx
  24. 0f 05 # syscall
  25. 48 c7 c1 e4 01 60 00 # mov $0x6001e4,%rcx
  26. 48 c7 c2 04 02 60 00 # mov $0x600204,%rdx
  27. e8 89 00 00 00 # callq 4001ae <strcmp>
  28. 48 89 c7 # mov %rax,%rdi
  29. 48 c7 c0 3c 00 00 00 # mov $0x3c,%rax
  30. 0f 05 # syscall
  31. :getstr
  32. 48 89 c3 # mov %rax,%rbx
  33. :getstr.loop
  34. e8 12 00 00 00 # callq 40014b <getchar>
  35. 48 83 f8 ff # cmp $0xffffffffffffffff,%rax
  36. 74 08 # je 400147 <getstr.done>
  37. 88 03 # mov %al,(%rbx)
  38. 48 83 c3 01 # add $0x1,%rbx
  39. eb ed # jmp 400134 <getstr.loop>
  40. :getstr.done
  41. c6 03 00 # movb $0x0,(%rbx)
  42. c3 # retq
  43. :getchar
  44. 48 c7 c0 00 00 00 00 # mov $0x0,%rax
  45. 48 c7 c7 00 00 00 00 # mov $0x0,%rdi
  46. 48 8d 34 25 2e 02 60 # lea 0x60022e,%rsi
  47. 00
  48. 48 c7 c2 01 00 00 00 # mov $0x1,%rdx
  49. 0f 05 # syscall
  50. 48 83 f8 01 # cmp $0x1,%rax
  51. 75 0f # jne 40017f <getchar.getchar_fail>
  52. 48 c7 c0 00 00 00 00 # mov $0x0,%rax
  53. 8a 04 25 2e 02 60 00 # mov 0x60022e,%al
  54. c3 # retq
  55. :getchar.getchar_fail
  56. 48 c7 c0 ff ff ff ff # mov $0xffffffffffffffff,%rax
  57. c3 # retq
  58. :putchar
  59. 88 04 25 2e 02 60 00 # mov %al,0x60022e
  60. 48 c7 c0 01 00 00 00 # mov $0x1,%rax
  61. 48 c7 c7 01 00 00 00 # mov $0x1,%rdi
  62. 48 8d 34 25 2e 02 60 # lea 0x60022e,%rsi
  63. 00
  64. 48 c7 c2 01 00 00 00 # mov $0x1,%rdx
  65. 0f 05 # syscall
  66. c3 # retq
  67. :strcmp
  68. 8a 01 # mov (%rcx),%al
  69. 8a 1a # mov (%rdx),%bl
  70. 3c 00 # cmp $0x0,%al
  71. 74 11 # je 4001c7 <strcmp.al.eq>
  72. 80 fb 00 # cmp $0x0,%bl
  73. 74 21 # je 4001dc <strcmp.bl.eq.2>
  74. 38 d8 # cmp %bl,%al
  75. 75 1d # jne 4001dc <strcmp.bl.eq.2>
  76. 48 ff c1 # inc %rcx
  77. 48 ff c2 # inc %rdx
  78. eb e7 # jmp 4001ae <strcmp>
  79. :strcmp.al.eq
  80. 80 fb 00 # cmp $0x0,%bl
  81. 74 08 # je 4001d4 <strcmp.bl.eq.1>
  82. 48 c7 c0 01 00 00 00 # mov $0x1,%rax
  83. c3 # retq
  84. :strcmp.bl.eq.1
  85. 48 c7 c0 00 00 00 00 # mov $0x0,%rax
  86. c3 # retq
  87. :strcmp.bl.eq.2
  88. 48 c7 c0 01 00 00 00 # mov $0x1,%rax
  89. c3 # retq
  90. Disassembly of section .bss:
  91. :__bss_start
  92. ...
  93. :mystr
  94. ...
  95. :buf
  96. ...
  97. Disassembly of section .debug_aranges:
  98. :.debug_aranges
  99. 2c 00 # sub $0x0,%al
  100. 00 00 # add %al,(%rax)
  101. 02 00 # add (%rax),%al
  102. 00 00 # add %al,(%rax)
  103. 00 00 # add %al,(%rax)
  104. 08 00 # or %al,(%rax)
  105. 00 00 # add %al,(%rax)
  106. 00 00 # add %al,(%rax)
  107. b0 00 # mov $0x0,%al
  108. 40 00 00 # add %al,(%rax)
  109. 00 00 # add %al,(%rax)
  110. 00 34 01 # add %dh,(%rcx,%rax,1)
  111. ...
  112. Disassembly of section .debug_info:
  113. :.debug_info
  114. 5d # pop %rbp
  115. 00 00 # add %al,(%rax)
  116. 00 02 # add %al,(%rdx)
  117. 00 00 # add %al,(%rax)
  118. 00 00 # add %al,(%rax)
  119. 00 08 # add %cl,(%rax)
  120. 01 00 # add %eax,(%rax)
  121. 00 00 # add %al,(%rax)
  122. 00 b0 00 40 00 00 # add %dh,0x4000(%rax)
  123. 00 00 # add %al,(%rax)
  124. 00 e4 # add %ah,%ah
  125. 01 40 00 # add %eax,0x0(%rax)
  126. 00 00 # add %al,(%rax)
  127. 00 00 # add %al,(%rax)
  128. 73 74 # jae 96 <_start-0x40001a>
  129. 72 63 # jb 87 <_start-0x400029>
  130. 6d # insl (%dx),%es:(%rdi)
  131. 70 2e # jo 55 <_start-0x40005b>
  132. 61 # (bad)
  133. 73 6d # jae 97 <_start-0x400019>
  134. 00 2f # add %ch,(%rdi)
  135. 68 6f 6d 65 2f # pushq $0x2f656d6f
  136. 69 76 79 2f 43 6f 64 # imul $0x646f432f,0x79(%rsi),%esi
  137. 65 2f # gs (bad)
  138. 67 75 69 # addr32 jne a6 <_start-0x40000a>
  139. 78 2d # js 6c <_start-0x400044>
  140. 62 # (bad)
  141. 6f # outsl %ds:(%rsi),(%dx)
  142. 6f # outsl %ds:(%rsi),(%dx)
  143. 74 73 # je b7 <_start-0x3ffff9>
  144. 74 72 # je b8 <_start-0x3ffff8>
  145. 61 # (bad)
  146. 70 2f # jo 78 <_start-0x400038>
  147. 68 65 78 38 36 # pushq $0x36387865
  148. 2f # (bad)
  149. 61 # (bad)
  150. 73 6d # jae bf <_start-0x3ffff1>
  151. 2f # (bad)
  152. 00 79 61 # add %bh,0x61(%rcx)
  153. 73 6d # jae c5 <_start-0x3fffeb>
  154. 20 31 # and %dh,(%rcx)
  155. 2e 33 2e # xor %cs:(%rsi),%ebp
  156. 30 00 # xor %al,(%rax)
  157. 01 # .byte 0x1
  158. 80 # .byte 0x80
  159. Disassembly of section .debug_abbrev:
  160. :.debug_abbrev
  161. 01 11 # add %edx,(%rcx)
  162. 00 10 # add %dl,(%rax)
  163. 06 # (bad)
  164. 11 01 # adc %eax,(%rcx)
  165. 12 01 # adc (%rcx),%al
  166. 03 08 # add (%rax),%ecx
  167. 1b 08 # sbb (%rax),%ecx
  168. 25 08 13 05 00 # and $0x51308,%eax
  169. ...
  170. Disassembly of section .debug_line:
  171. :.debug_line
  172. 7e 00 # jle 2 <_start-0x4000ae>
  173. 00 00 # add %al,(%rax)
  174. 02 00 # add (%rax),%al
  175. 21 00 # and %eax,(%rax)
  176. 00 00 # add %al,(%rax)
  177. 01 01 # add %eax,(%rcx)
  178. fb # sti
  179. 0e # (bad)
  180. 0d 00 01 01 01 # or $0x1010100,%eax
  181. 01 00 # add %eax,(%rax)
  182. 00 00 # add %al,(%rax)
  183. 01 00 # add %eax,(%rax)
  184. 00 01 # add %al,(%rcx)
  185. 00 73 74 # add %dh,0x74(%rbx)
  186. 72 63 # jb 83 <_start-0x40002d>
  187. 6d # insl (%dx),%es:(%rdi)
  188. 70 2e # jo 51 <_start-0x40005f>
  189. 61 # (bad)
  190. 73 6d # jae 93 <_start-0x40001d>
  191. 00 00 # add %al,(%rax)
  192. 00 00 # add %al,(%rax)
  193. 00 00 # add %al,(%rax)
  194. 09 02 # or %eax,(%rdx)
  195. b0 00 # mov $0x0,%al
  196. 40 00 00 # add %al,(%rax)
  197. 00 00 # add %al,(%rax)
  198. 00 03 # add %al,(%rbx)
  199. 09 01 # or %eax,(%rcx)
  200. 83 83 83 83 83 83 85 # addl $0xffffff85,-0x7c7c7c7d(%rbx)
  201. 75 5b # jne 9d <_start-0x400013>
  202. 75 75 # jne b9 <_start-0x3ffff7>
  203. 75 75 # jne bb <_start-0x3ffff5>
  204. 31 75 75 # xor %esi,0x75(%rbp)
  205. 5b # pop %rbx
  206. 3d 75 31 3e 59 # cmp $0x593e3175,%eax
  207. 4b 30 2f # rex.WXB xor %bpl,(%r15)
  208. 4b 31 3d 23 75 75 83 # rex.WXB xor %rdi,-0x7c8a8add(%rip) # ffffffff8375757c <_end+0xffffffff83157344>
  209. 75 30 # jne 8b <_start-0x400025>
  210. 4b 30 75 75 # rex.WXB xor %sil,0x75(%r13)
  211. 23 75 23 # and 0x23(%rbp),%esi
  212. 76 75 # jbe d9 <_start-0x3fffd7>
  213. 75 83 # jne ffffffffffffffe9 <_end+0xffffffffff9ffdb1>
  214. 75 30 # jne 98 <_start-0x400018>
  215. 03 0b # add (%rbx),%ecx
  216. 20 2f # and %ch,(%rdi)
  217. 34 2f # xor $0x2f,%al
  218. 30 3d 31 2f 30 3d # xor %bh,0x3d302f31(%rip) # 3d302fa5 <_end+0x3cd02d6d>
  219. 3e 32 3d 30 75 24 75 # xor %ds:0x75247530(%rip),%bh # 752475ab <_end+0x74c47373>
  220. 25 75 02 01 00 # and $0x10275,%eax
  221. 01 01 # add %eax,(%rcx)