Identify the problems in this Verilog snippet
You are using (reading) b and it is not in the sensitivity list.

op should not be in the sensitivity list but it does not hurt.

It is strongly recommended to use always @( *) in these cases.

The assignment is correct and should be blocking.