They follow the structure: operation [operands,..]

operationexampleexplanation
mov (move)mov ebx, 123ebx = 123
Mov eax, ebxeax = ebx
addadd ebx, ecxebx += ecx
adcadc ebx, ecxebx += ecx BUT if (ebx + ecx) > 0xFFFFFFFF, then it carries the remainder in cpsr.TLDR: ebx = ecx 100% regardless of size
subsub ebx, edxebx -= edx
sub r2,r1,r0r2 = r1-r0
subssubs r2,r1,r0r2 = r1-r0 BUT it keeps negative sign
mul (multiply)mul ebxeax = ebx
divdiv edxeax /= edx
swi (software interrupt)swi 0Software interruption. Check if program ends
ldr (stackregister)ldr r0,=listr0 = data at list
ldr r1,[r0]r1 = data at address of r0
ldr r2,[r0,#4]r1 = data at address of r0+4
str (registerstack)Str r1,[r0]Store value of r1 into the location of r0.
andand r0,r1,r2r0 = r1 and r2
And eax,0xFCClear eax registry(unless 0xFC values exist)
orr (or)orr r0,r1,r2r0 = r1 or r2.
eor (xor)eor r0,r1,r2r0 = r1 xor r2
mvn (move negative)mvn r0,r0r0 = not r0 Move to source and negate. A true would turn false
lsl (logical left shift)lsl r0,#1Logical left r0 one time
rsl (logical right shift)rsl r0,#2Logical right r0 2 times
lsr (rotational left shift)lsr r0,#1Rotational left r0 one time
rsr (rotational left shift)rsr r0,#2rotational right r0 2 times
cmp (compare)cmp r0,r1Compare r0 and r1. Opens up the door for branches
bgt (branch if greater than)bgt some_labelWill branch if previous compare have first value larger than second into some_label function
bge (branch if greater than or equal to)bge some_labelbranches to another label if previous compare’s 1st arg is greater or equal to 2nd arg
bal (branch always)bal some_labelUnconditionally branch to this label. unavoidable
blt (branch less than)blt some_labelBranches if 1st argument is smaller than second argument
beqbeq some_labelBranches if both arguments are equal
bne)bne some_labelBranches if both arguments not equal
bx (branch to register)bx lrBranch to linked register
bl (branch label)bl some_labelBranch to some label
push (push onto stack)push {r0,r1}Push r0 and r1 into stack
pop (pop from stack)pop {r0,r1}Retireve r0 and r1 from the stack

Chaining operations

Certain operations can be completed in tandem with other operations. An example being move and logical shift mov r1,r0,lsl #1 will first assign r1 to r0 and then logical shift it by one