Mellis is right - for the most part, I just use COP on anything other than asynchronous data, as CPS is a whole lot more CPU intensive, but if it's possible that your instruction could be interrupted halfway through, and that the half-finished data could be used somewhere else, and if that would cause a problem, then you're best to use CPS.