Throw InstructionException as late as possible.

So that the fields of the instruction are at least
properly decoded by the time it's thrown.
Implement decoding of all forms of LDR/STR.