# Walkthrough of the assembler
+Firstly the CTR (Counter) SPR is set up, and is key to looping
+as outlined further, below
+
```
mtspr 9, 3" # move r3 to CTR
```
+The Vector Length, which is limited to 8 (MVL - Maximum
+Vector Length) is set up. A special "CTR" Mode is used
+which automatically uses the CTR SPR rather than register
+RA. (*Note that RA is set to zero to indicate this, because there is
+limited encoding space. See [[openpower/sv/setvl]] instruction
+specification for details)*.
+
+The result of this instruction is that if CTR is greater than
+8, VL is set to 8. If however CTR is less than or equal to 8,
+then VL is set to CTR. Additionally, a copy of VL is placed
+into RT (r3 in this case), which again is necessary as part
+of the limited encoding space but in some cases (not here)
+this is desirable, and avoids a `mfspr` instruction to take
+a copy of VL into a GPR.
+
```
-# VL = MIN(CTR,MAXVL=8), Rc=1 (CR0 set if CTR ends)
+# VL = MIN(CTR,MAXVL=8)
setvl 3,0,8,0,1,1" # set MVL=8, VL=MIN(MVL,CTR)
```