Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

EE380 In-class exercise #2 Fall 2010

Consider following code fragment in a high-level programming language:

X = A + B
if X == 10:
Y = 1
else
Y = 0

Translate this algorithm into assembly language using the following five instructions:

Instruction Mnemonics Example RTL


move
MOVE MOVE D0, Q [M(Q)] ← [D0]
(copy!)
ADD add ADD Q, D0 [D0] ← [M(Q)]+[D0]

CMP compare CMP Q, D0 [Q]-[M(Q)] affects CCR


branch
BEQ BEQ N IF Z=1: [PC] ← N
on equal
Branch
BRA BRA N [PC] ← N
(uncond)

Complete code listing Instructions executed Instructions executed


when A+B=10 when A+B≠10
MOVE A, D0 MOVE A, D0 MOVE A, D0
ADD B, D0 ADD B, D0 ADD B, D0
MOVE D0, X MOVE D0, X MOVE D0, X
CMP #10, D0 CMP #10, D0 CMP #10, D0
BEQ TEN BEQ TEN BEQ TEN
MOVE #0, D0 MOVE #0, D0 MOVE #0, D0
BRA EXIT BRA EXIT BRA EXIT
TEN MOVE #1, D0 TEN MOVE #1, D0 TEN MOVE #1, D0
EXIT MOVE D0, Y EXIT MOVE D0, Y EXIT MOVE D0, Y

You might also like