The LIM instruction is an input checking to see if a certain condition exists. It is basically saying:
Is RO.Sys_Program_Loaded Greater than or Equal to the Low Limit of 12
AND
Is RO.Sys_Program_Loaded Less than or Equal to the High Limit of 13
If the value being tested is within that range, the instruction is true. Else, it is false
The MOV instruction on the other hand is an output that writes to the Destination.
So, when the logic ahead of the MOV is true, the constant number of 1 will be written to RO.Sys_Step_Number.
In the graphic you provided, the current value of 38 would be overwritten with the value 1. Sort of like a reset.
** EDIT ***
As usual, Mickey was faster!
OG