SysTick Timer in ARM arch - Mazidi book part
Elementary math:

Assuming SysTick runs at 16MHz, the x = x &gt;&gt; 20; is the same as
x = x / 1048576 or roughly "divide by a million". 

So you end up changing the Port value about every 1/16th of a second - which yields a nice 8Hz blinking LED - or would if they actually used pin 0 as an output. 

Since the first LED seems to be at pin 1 and that pin sees excactly half the frequency, it will blink about 4Hz. The second and 3rd will blink at 2 and 1Hz respectively.