always_ff is always executed earlier than always_comb in ModelSim
The difference in ordering between your always_ff and always_comb is a result of different assignment ordering between from your initial and always blocks. 

Your initial block uses a #10 delay to make assignments to inputs sensitive in the always_comb block. That coincides with the assignment clk=~clk in the always block. So you have a race condition with the timing of the always_ff's positive edge of clk and the inputs to the always_comb

You need to modify the timing of initial block assignment to not be in a race by using non-blocking assignments, or using delays that put the assignments off from the posedge of the clock.