ARM_Manual4 - The ARM Assembly Language A Short...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
The ARM Assembly Language – A Short Introduction September 29, 2008 1 The ARM Assembly Language – A Short Introduction © R. Nigel Horspool and Micaela Serra, 2006–2008 Department of Computer Science University of Victoria 1. Preliminaries This document provides only a barest-bones description of those ARM7TDMI assembler instructions and their addressing modes that are likely to be needed in an introductory course on assembly language and computer architecture. Because the ARM instruction set is common across the range of ARM processors, assembly code that runs on an ARM7 processor also runs on other ARM family processors. The ARM architecture is based on RISC (Reduced Instruction Set Computer) ideas. The main consequence is that all computations have registers as their operands. That is, an ARM program must load values into registers, it manipulates those registers, and then it may store results back to memory. The architecture implements binary integers in 32 bit sizes in both signed and unsigned formats. It also implements 64 bit floating-point numbers. Addresses are 32 bits wide. We use the follow- ing names for the different size storage units: byte for 8-bit numbers, and word for 32-bit numbers. Supervisor mode instructions, floating point instructions and other highly specialized instructions are not described in this document. Also note that GNU assembler syntax is used in this document – not the assembly language syntax used in the tools developed and distributed by ARM Ltd. The GNU syntax has changed between different releases of the Gnu assembler. We are assuming the assembler syntax supported by release 2.16.91, distributed as the program arm-none-eabi-as.exe with the 2006q1-6 release of the CodeSourcery toolchain (see the reference section for the CodeSourcery URL). The ARM7TDMI processor has two operating states: the ARM state , where the processor executes 32-bit, word-aligned ARM instructions, and the Thumb state, where the processor executes 16-bit, halfword-aligned Thumb instructions. This intro- duction only considers the ARM state. The normal twos-complement representation is used for binary numbers. There are two possible orderings for the bytes within a word, and the ARM supports both of them. With the big-endian format, the first byte in a word holds the most signif- icant 8 bits, and so on in order for another three bytes. With little endian format, the ordering of the bytes in memory is reversed. (However, the ordering of the bits within a byte is the same for both big-endian and little-endian formats.) The ARM supports both formats, using a mode bit to select the desired format. If the byte ordering has any effect on any examples in this document then little-endian format (the same as used by Intel architecture processors) has been used. The bibliography at the end of this document lists books which will provide a more detailed description of the ARM
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 12/20/2010 for the course CSC CSCC85 taught by Professor Lorincz during the Spring '10 term at University of Toronto- Toronto.

Page1 / 22

ARM_Manual4 - The ARM Assembly Language A Short...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online