Adding our last command to our decoder is a trivial task at this point. However, we also have three responses to decode. The FP decode says that the first byte of a frame is the command or response code; however, we don't know whether the frame contains a command or a response until we decode it. We could use the label "Command/Response" for the first byte, but that's not as easy for the user to understand as if we said either "Command" or "Response" depending on which it was.
Towards the beginning of the tutorial, we explained how Size methods move the bit pointer through the data. It would be useful if we could decode the first byte in the layer, look at it, decide if it's a command or a response, and only then display the field with the right detail tag. To do this, we would need to decode the field, prevent it from being displayed in the Decode pane, and leave the bit pointer at the beginning of the field when we're finished so it's in position to decode the field properly once we know if it's a command or a response.
The keyword NO_MOVE tells the protocol analyzer to leave the bit pointer where it is after decoding the field. Why do this? Because the command and response statements decode the same data again. (You could achieve the same effect by adding a StartBit method, described later, to the first field in the group but in this case, using NO_MOVE is a much cleaner choice.)