title: Assembly jumps automatically to next label
body: <p>I've written a program in assembly that look like this: </p>
  
  <pre><code>%macro print 1
  
      push rbp
  
      mov rdi, %1
      xor rax, rax
  
      call _printf
  
      pop rbp
  
  %endmacro    
  section .data
      e db 'Equal', 0
      l db 'Less than', 0
      g db 'Greater than', 0
  section .text
          global start
          extern _printf
      start:
          mov rax, 5
          mov rbx, 5
          cmp rax, rbx ; Compare 4 and 5
          je _equal ; je = jump if equal
          cmp rax, rbx
          jl _less ; jl = jump if less
          cmp rax, rbx
          jg _greater ; jg = jump if greater
  
          ret
  
  _equal:
      print e
  _less:
      print l
  _greater:
      print g
  </code></pre>
  
  <p>But when I run the program it jumps to <code>_equal</code>, but it then jumps to <code>_less</code>, and <code>_greater</code>. How can I disable this auto-jumping?</p>