ADDITIONAL NOTES: ASSEMBLY LANGUAGE
OPERATION INFORMATION EXAMPLE NOTES
MOV Assign values. MOV a, = 3 not to be used with R,
MOV only if permitted by
destination, the target machine
source architecture
LOD Load data into LOD R1, a must use with R
register
STO Store data STO RI, T1 must use with R
from register
to variable
PUSH Push value on PUSH a
top of stack
CALL Call function CALL println
CMP Compare not to be used with R
between two not to be used with
values direct numbers
ARITHMETIC OPERATION
ADD Add numbers ADD R1, b must use with R
SUB Subtract SUB R1, b must use with R
numbers
MUL Multiply MUL R1, b must use with R
numbers
DIV Divide numbers DIV R1, b must use with R
BRANCH OPERATION
B Unconditional B L2
branch
Conditional
branch
BH Branch if BH L3
higher
BL Branch if BL L3
lower
BHE Branch if BHE L3
higher or even
BLE Branch if BLE L3
lower or even
L Label a place L2
All rights reserved: Fadzlin Binti Ahmadon, FSKM UiTM Jasin. For usage of CSC569 Principles of Compiler class.
ASSEMBLY LANGUAGE FOR CONTROL STRUCTURES
1. if-else
CMP
COND B L1
UNCOND B L2
L1 STMT
L2 STMT
2. while
L1 CMP
COND B L2
UNCOND B L3 exit if not
L2 STMT
UNCOND B L1 loop
L3 exit
3. for
MOV initialisation
LOD
Boolean
STO
L1 CMP
COND B L2
UNCOND B L3 exit if not
L2 STMT
ADD / SUB increment (i++)/decrement (i--)
UNCOND B L1 loop
L3 exit
All rights reserved: Fadzlin Binti Ahmadon, FSKM UiTM Jasin. For usage of CSC569 Principles of Compiler class.
Examples of operations:
5. if ( a > b) a = a+1
1. c = a + b;
CMP a, b
LOD R1, a BH L1
ADD R1, b B L2
STO R1, c L1: LOD R1, a
ADD R1, 1
2. a = 14; STO R1, a
b = 12; L2:
println(a-b);
MOV a, = 14 6. for ( a=1; a>=20; a++)
MOV b, = 12 y = y + 1
LOD R1, a
SUB R1, b MOV a, =1
STO R1, T1 LOD R1, =20
PUSH T1 STO R1, T1
CALL PRINTLN L1: CMP a, T1
BHE L2
B L3
3. a + b + c L2: LOD R1, y
ADD R1, =1
LOD R1, a STO R1, y
ADD R1, b LOD R1, a
ADD R1, c ADD R1, =1
STO R1, T1 STO R1, a
B L1
L3:
4. while (x <= a+b) x=2*x
L1: LOD R1, a
ADD R1, b
STO R1, T1
CMP x, T1
BLE L2
B L3
L2: LOD R1, = 2
MUL R1, x
STO R1, x
B L1
L3:
All rights reserved: Fadzlin Binti Ahmadon, FSKM UiTM Jasin. For usage of CSC569 Principles of Compiler class.