I was looking through the generated assembly from my compiler and noticed a series of jump commands that just go to the next memory address listed. I was wondering what the heck the purpose of that is. This was generated from gcc compiler. I used otool to disassemble. The snippet of assembly is toward the bottom of the list right before the functions are listed, so I'm sure it has to do with the main function and since it's just calls to printf and if else statements I can't make heads or tails of what it does... here is a link to full source: https://drive.google.com/open?id=1INI3i4ZP7dtJVQ5n4twA6RCG_sdbjVxd
It has make file included, the program with take an argument such as m2k for miles to kilometers then the value you want so to convert 3 miles to kilometers the syntax would be : convert m2k 3.
0000000100000c95 cvtsd2ss %xmm0, %xmm0
0000000100000c99 callq 0x100000ee0
0000000100000c9e leaq 0x2a5(%rip), %rdi
0000000100000ca5 cvtss2sd %xmm0, %xmm0
0000000100000ca9 movb $0x1, %al
0000000100000cab callq 0x100000f0a
0000000100000cb0 movl %eax, -0x38(%rbp)
0000000100000cb3 jmp 0x100000cb8
0000000100000cb8 jmp 0x100000cbd
0000000100000cbd jmp 0x100000cc2
0000000100000cc2 jmp 0x100000cc7
0000000100000cc7 jmp 0x100000ccc
0000000100000ccc jmp 0x100000cd1
0000000100000cd1 jmp 0x100000cd6
0000000100000cd6 jmp 0x100000cdb
0000000100000cdb jmp 0x100000ce0
0000000100000ce0 xorl %eax, %eax
0000000100000ce2 addq $0x40, %rsp
0000000100000ce6 popq %rbp
0000000100000ce7 retq