Home page for Introduction to Assembly Language: Arm Edition

What this page is for

This page is to document the extra material for the book "Instruction to Assembly Language, Arm Edition", by Charles W. Kann. The resources here are developed by Chuck Kann or his students to support the concepts in the book. It will outline the material for the book, and the downloads that are available to support those resources.

Dictionary

This is the dictionary that is referenced at the end of the textbook. I will update the dictionary to reference this file when I do the first update.

Textbook source

The textbook is available from the site https://cupola.gettysburg.edu/oer/8/ . The Word source for the textbook is IntroductionToAssemblyLanguageProgramming_ARM.docx. The book is avaiable using a creative commons license, and can be freely downloaded, used, and modified for any purpose so long as the book is attributed.

Style Guide

A style guide is available to guide students in generating programs. This saves faculty from specifying how students should format their programs, and allows students to know how to write well formatted code that a professor can grade easily. It is at ARM_Code_Styles.pdf"

Operand 2 Immediate Format Tool

A tool to help students understand how to generate Operand2 Immediate(8 bit value 4 bit rotation with the MOV and MVN instruction). ARM Immediate Encdoing

Animation of Instructions

Animations of the implementation of instructions supporting Chapters 4 and 5. These require powerpoint to run, and the powerpoint file is pretty large (150 MBs). But it is very helpful in understand basic ARM instructions, particularly the Operand2. It is available from InstructionAnimations.pptx

Machine Code

There are two resources to help with understanding and working with ARM machine instructions. The first is a spreadsheet that is referenced in Chapter 6. It can be found at MachineCode.xlsx The second is the flow chart to disassemble machine code instructions to assembly code. It is MachineCodeFlowChart.png. The visio file that generated it is MachineCodeFlowChart.vsdx

Answer Manual

Two answer manuals are available. One is ARM Textbook Solution Manual.docx. The other is availble to instructors by request to the author.

Hacking Problems

There are two hacking problems for ARM Assembly. Both are related to buffer overflow attacks. The can be found at https://github.com/defghij/605611_project I have left this at the github page for the students who did the projects. Luke Craig wrote up a blog post for his project at https://www.lukecraig.com/improving_bbo/