Вы находитесь на странице: 1из 3

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.

Вам также может понравиться