Source: https://syst.univ-brest.fr/boukhobza/images/stories/Documents/Teachings2/AS1/CM/Cours8Microprocesseurs_ARM.pdf