Source: http://index-of.es/Varios-2/ARM%20Assembly%20Programming.pdf