I've wondered how instructions like je and jne work. For cmp its simply subtracting and moving a value to a register, but then for instance "je" has to check the value in that register, and if its 0 it jumps or else it doesnt (or whatever the value is to jump...). How does the process handle that compare?