title: Each label address used, adds 24 bytes more (plus 8 bytes (totalling 32 bytes)) to the .o file's total size
body: <p>In my FASM project (Object), I'm trying to create a jump-table and I use <code>dq</code> for each jump address but there is a problem!<br />
  For each <code>dq .jmp1</code> (jump address definition), 24 bytes more (plus 8 bytes for <code>.jmp1</code> address (totalling 32 bytes)) will be added to my final .o file's total size!<br />
  What is that extra 24 bytes? Is there any way to avoid it? This happens only in object file, not in executable!</p>
  <p>Instead of 8 bytes for each jump address, it defines 32 bytes! What is the problem?</p>
  <pre><code>format ELF64
  
  section '.text'
  
  func:
          lea     rax, [8*rax+.jmp_table]
  
   .jmp1:
  
   .jmp_table:
          dq .jmp1 ; 8 bytes + 24 bytes !!! (to .o total size)
          dq .jmp1 ; 8 bytes + 24 bytes !!! (to .o total size)   
  </code></pre>
  <p>But when I create an executable, each <code>dq</code> takes only 8 bytes (what I expect) ...</p>
  <pre><code>format ELF64 EXECUTABLE
  
  segment readable executable
  
  func:
          lea     rax, [8*rax+.jmp_table]
  
   .jmp1:
  
   .jmp_table:
          dq .jmp1 ; 8-BYTE, no extra 24 bytes to .o total size
          dq .jmp1 ; 8-BYTE, no extra 24 bytes to .o total size
  </code></pre>