nopNo instruction. Does nothing. Used for alignment.
bBranch off and go to a label.
b startExecution goes to the label start.
movMove a value to a register. 8 bits maximum.
mov r0,#1Moves value 1 to r0. r0 equals 1.
addAdds two values together and place it to a register.
add r0,r1,r2Adds r1 and r2 together. Then places it in r0.
ldrLoad a value to a register. Use this instruction when mov can't.
ldr r0,=r1Loads r1's address to r0. Not r1's value.
ldr r0, [r1]Loads value from given address(r1's value) and place it in r0.
ldr r0, [r1,r2]Loads value from given address(r1's and r2's value) and place it in r0.
ldr r0,=0x10000000Place 0x10000000 into r0. r0 equals 0x10000000.
strStore value into memory location.Memory location is the data section.
str r0,[r1]Store r0's value in the at the address given(r1's value).
cmpCompares two registers and see if they are above zero. It subtracts internally.
cmp r0,r1Sets N,Z,V,C condition flags with the data of r0-r1. Negative,Zero,Overflow,Carry.
cmp r0,#3Performs r0-3.
If it is negative then N = true.
If it is overflowing then V = true.
If N == V or GE then go to start label.
bgeChecks if N == V or GE then goes to the branch see above.
Software used: ARMSim