Category:ARM Assembly
This programming language may be used to instruct a computer to perform a task.
See Also: |
|
---|
The ARM architecture is widely used on mobile phones and tablets. It falls under the category of RISC (Reduced Instruction Set Computer) processors, which means it has fewer opcodes than a CPU such as those in the x86 family. However, it makes up for this with its speed. The ARM and its variants are used in many well-known systems such as the Raspberry Pi, Nintendo DS, iPad, and more.
Barrel Shifter
The ARM can add a bit shift or rotate to one of its operands at no additional cost to execution time or bytecode. If the operand being shifted is a register, the value of that register is not actually changed. The shift or rotate only applies during that instruction.
<lang ARM Assembly>add r0,r0,r1 lsl 2 ;shift r1 left 2 bits, add r0 to r1, store the result in r0. r1 is unchanged after this instruction</lang>
Separate Destination for Math
With the x86, 68000, and other similar processors, arithmetic functions take two operands: the source and the destination. Anytime you add two numbers, one of them gets changed. This is not the case with the ARM. The destination can be a third register that isn't involved in the arithmetic whatsoever!
<lang ARM Assembly> add r3,r2,r1 ;add r2 to r1 and store the result in r3. r1 and r2 are unchanged.</lang>
Conditional Opcodes
Checking for condition codes isn't just limited to branching on the ARM. Almost every instruction can be made conditional. If the condition is not met, the opcode will have no effect. This saves a lot of cycles that would be spent branching just to execute a single instruction.
<lang ARM Assembly>addeq r0,r0,r1 ;if the last math operation had an answer of zero, add r0 to r1 and store the result in r0.</lang>
Setting Flags
The flags, or condition codes, are only set by instructions that end in an "s". This lets you "preserve" the processor's state after an important calculation, but do some other things before execution branches depending on the result of that calculation. On any other processor, the calculation that determines whether a branch occurs MUST happen JUST before that branch statement or the branch will be taken based on the wrong data.
Subcategories
This category has the following 3 subcategories, out of 3 total.
@
- ARM Assembly Implementations (empty)
- ARM Assembly User (16 P)
Pages in category "ARM Assembly"
The following 50 pages are in this category, out of 251 total.
(previous page) (next page)S
- Sorting algorithms/Patience sort
- Sorting algorithms/Permutation sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Radix sort
- Sorting algorithms/Selection sort
- Sorting algorithms/Shell sort
- Split a character string based on change of character
- Stack
- String append
- String case
- String comparison
- String concatenation
- String interpolation (included)
- String length
- String matching
- Subleq
- Substitution cipher
- Substring
- Sum and product of an array
- System time
T
- Take notes on the command line
- Tau function
- Terminal control/Clear the screen
- Terminal control/Coloured text
- Terminal control/Cursor movement
- Terminal control/Cursor positioning
- Terminal control/Inverse video
- Time a function
- Tokenize a string
- Tonelli-Shanks algorithm
- Totient function
- Towers of Hanoi
- Tree traversal
- Two sum
- Two's complement