title: Is it possible to use a conditional jump in assembly without a `cmp` first?
body: <p>So I'm reading through some <a href="https://github.com/redox-os/bootloader/blob/master/x86_64/redoxfs.asm" rel="nofollow noreferrer">assembly source code</a> for learning purposes and came across something very strange (or I may just be a newb):</p>
  
  <pre><code>.ver:
      mov al, [redoxfs.header + Header.version +  bx]
      mov ah, [.version + bx]
      cmp al, ah
      jne .ver_err
      inc bx
      jl .ver
  </code></pre>
  
  <p>So in this sub-label we have two jump instructions.</p>
  
  <p>However, about the last jump instruction <code>jl</code>. Correct me if I'm wrong, but shouldn't there be a <code>cmp</code> before the jump since it's conditional?</p>
  
  <p>I initially thought it was based on <code>cmp al, ah</code>, but <code>jne</code> jumps if not equal anyway.</p>
  
  <p>Am I missing something?</p>