You are on page 1of 6

6

ssecca yromem margorp

ssecca yromem atad

ecapS yromeM CRAHS

)tniop gnitaolf rof 51F-0F sa desaila( 51R-0R o

.sretsiger tpurretnI .sretsiger rotareneg sserdda ataD .sretsiger pooL .sretsiger sutatS :selif retsigeR

ledoM gnimmargorP CRAHS

.atad emos erots ot desu eb nac yromem margorP o

:ot stcennoc elif retsigeR

.ULA o ;retfihs o reilpitlum o

.erutcetihcra dravraH deifidoM

erutcetihcrA CRAHS

R1=DM(M0,I0), R2=PM(M8,I8); ! comment label: R3=R1+R2;

:nolocimes yb detanimret noitaton ciarbeglA

egaugnaL ylbmessA CRAHS

06012-PSDA erutcetihcrA rossecorP CRAHS

)floW enyaW fo sed ils no desab( es.htk.timi@ogni rednaS ognI

rossecorP CRAHS

21

11

ngis ,wolfrevo ,orez o dilavni tniop-gnitaolf ,wolfrevo tniop-dexif ,wolfrevo/rednu tniop-gnitaolf ,sretsiger noitalumucca erapmoc ,tniop-gnitaolf saw po tsal ,dilavni tniop-gnitaolf ,ngis-tupni ,yrrac tniop-dexif ,evitagen ,wolfrevo ,orez o

:retfihS

:ULA

.d ilavni tnio p-gnitaolf ,wolfrednu tni op-gnitaolf ,wolfrednu tniop-dexif ,dilavni ,wolfrevo/rednu ,evitagen :stib sutatS .elif retsiger ot og syawla stluser tnio p-gnitaolF .stib 08 si tluser tniop -dexiF .elif retsiger ot nettirw eb ro sretsiger RM lacol otni etalumucca nac snoitarepo tniop-dexiF

sgalf sutats retfihs/ULA

reilpitluM

01

.)1EDOM ni tib TASULA( citemhtira noitarutas stroppus ULA


.tseraen drawot dednuor o ;orez drawot dednuor o

.revollor ton ,eulav xam ni stluser wolfrevO o

:eb nac tnio p-gnitaolF

.1 edom :1 EDOM o .ykcits :YKTS o .sutats citemhtira :TATSA o

:tnatropmi tsoM

noitarutaS dna gnidnuoR

sretsigeR edoM CRAHS

.sdrow tib -23 sa yllanretni dezinagro yromeM .sregetni tib-23 .tni o p-gnitaolf noisicerp-dednetxe EEEI tib-04 .tniop -gnitaolf noisicerp-elgnis EEEI tib-23

sepyt atad CRAHS

metsyS rossecorpitluM yromeM derahS

81

71

.evitca era sretsiger etanretla ro yramirp rehtehw enimreted stib 1EDOM .gnixedni esrever-tib ,oludom ,dexedni edivorP

7B 6B 5B 4B 3B 2B 1B 0B

7L 6L 5L 4L 3L 2L 1L 0L

7M 6M 5M 4M 3M 2M 1M 0M

7I 6I 5I 4I 3I 2I 1I 0I

srotareneG sserddA ataD

sretsigeR 1GAD

61

51

.serots/sdaol lortnoc ot sretsiger GAD pu tes tsuM :)sGAD( srotareneg sserdda atad owT .snoitarepo tcerid -yromem on :erutcetihcra erots/daoL
.yromem atad o ;yromem margorp o

.51R-8R morf dnarepo ULA ,7R-0R morf dnarepo reilpitluM


o o o o

tcartbus/dda laud dna noitacilpitlum noitarepo ULA dna ylpitlum tniop-gnitaolf egareva,tcartbus,dda dna etalumucca/ylpitlum tniop-dexif ;tcartbus-dda laud

:lellarap ni snoitatupmoc emos eussi naC

erotS/daoL CRAHS

snoitatupmoC noitcnufitluM

41

31

.tes meht fo enon ,stib YKTS ruoF o .0 = IM ,1 = UM ,0 = VM ,1 = NM o .tes ton )wolfrednu tniop dexif( SOA tib YKTS o .0 = IA ,1 = CA ,0 = VA ,0 = NA ,0 = UA ,1 = ZA o

.0=SS,1=VS,0=ZS :3 YB fffffff7x0 TFIHSL :3*2- tniop-dexiF

:0 = 1 + 1- tniop-dexiF

.stib TATSA emos fo noisrev ykcits si YKTS . T A T S A n i s ti b ) d i l a v n i tniop-gnitaolf( IA ,)yrrac tniop -dexif( CA ,)wolfrevo( VA ,)evitagen( NA ,)orez( ZA tes snoitarepo ULA llA

snoitarepO ataD :elpmaxE

snoitarepO galF

R0 = DM(0x20000000); R0 = DM(_a); ! Loads contents of _a DM(_a)= R0; ! Stores R0 at _a

R0 = DM(I3,M3) ! Load DM(I2,1) = R1 ! Store

x = (a + b) - c; R0 = DM(_a) ! Load a R1 = DM(_b); ! Load b R3 = R0 + R1; R2 = DM(_c); ! Load c R3 = R3-R2; DM(_x) = R3; ! Store result in x

y = a*(b+c); R1 = DM(_b) ! Load b R2 = DM(_c); ! Load c R2 = R1 + R2; R0 = DM(_a); ! Load a R2 = R2*R0; DM(_y) = R2; ! Store result in y

! Load b, c R2=DM(I1,M5), R1=PM(I8,M13); R0 = R2+R1, R12=DM(I0,M5); R6 = R12*R0; DM(I0,M5)=R6; ! Store in y

22

42

:sretniop gnisu noisrev retrohS

.dtnoc ,elpmaxE

:relbmessA

F0 = DM(M0,I0), F1 = PM(M8,I9);

02

.sserdda esab reffub si B ,xedni trats reffub si retsiger L :reffub ralucriC

.eulav reifidom sdloh etaidemmi/retsiger M .sserdda esab sdloh retsiger I

stnemngissa C :elpmaxE

etadpU htiw yfidoM-tsoP


:C
91 12 32

:elcyc rep seulav owt daer ot yromem margorp ni atad tup naC

.ni derots era seulav yromem hcihw lortnoc ot remmargorp swolla relipmoC

yromeM margorP ni ataD

gnisserddA CISAB .dtnoc ,elpmaxE


:eulav etaidemmI

:relbmessA

:erots tceriD

:daol tceriD

:C

03

92

)deripxE retnuoC pooL ereh( noitidnoC noitanimreT

pooL ni noitcurtsnI tsaL

htgnel pooL

spool LITNU OD

82

72

.erots ot eno hcihw esoohc neht ,sesac htob etupmoc ---pu ti deeps ot msilellarap esU
if (a>b) y = c-d; else y = c+d;

:C

.troba pool citamotua sesuac PMUJ .deyaled-non ro deyaled eb naC .evitaler -CP ,tceridni ,tcerid eb nac sserddA .lanoitidnoc eb naC .ITR ,STR ,PMUJ ,LLAC :sepyT

noitatnemelpmI fi ycnaF

62

52

:sedom gnisserdda eerhT :egnahc lortnoc fo wo lf lanoitidnocnU

.evitaler-CP o ;tceridni o ;tcerid o


JUMP foo

pmuj CRAHS

! Load values R1=DM(_a); R2=DM(_b); R3=DM(_c); R4=DM(_d); ! Compute both sum and difference R12 = r2+r4, r0 = r2-r4; ! Choose which one to save comp(r8,r1); if ge r0=r12; dm(_y) = r0 ! Write to y

:gni pool tneiciffe sedivorp noitcurtsni LITNU OD

LCNTR=30, DO label UNTIL LCE; ... Label: some instruction

.dtnoc ,noitatnemelpmi fi ycnaF

sehcnarB

:morf emo c snoitidnoC .yllano itidnoc detucexe eb yam snoitcurtsnI

.retnuoc pool ;stupni galf ;)1EDOM( 1 lortnoc edom ;)TATSA( sutats citemhtira

o o o o

snoitcurtsni lanoitidnoC

for (i=0, f=0; i<N; i++) f = f + c[i]*x[i];

! setup I0=_a; I8=_b; ! a[0] (DAG0), b[0] (DAG1) M0=1; M8=1 ! Set up increments ! Loop body LCNTR=N, DO loopend UNTIL LCE; ! Use postincrement mode R1=DM(I0,M0), R2=PM(I8,M8); R8=R1*R2; loopend: R12=R12+R8; ! MAC could be done ! in single ! Instruction (see ! Book)

CALL foo;

23

relbmessa retlif RIF


13 33

.noitcurtsni STR gnisu nruteR .sedom gnisserdda evitaler -CP ,tceridni ,etulosba esu naC

sllac enituorbus CRAHS

retlif RIF :elpmaxE


:noitcurtsni LLAC esU :C

You might also like