https://www.techteaching.co.uk/posts/learning-assembly-language-a-helpful-guide-part-1