// sum all elements in an array // dual core running strip 2 // result // one core 159 instructions // dual core 111 instructions ax[20], s0, s1 #noframe main() asm("cid r3") asm("eq r2 r3 #0") asm("jt r2 core0") asm("eq r2 r3 #1") asm("jmp core1") asm("trap r0 #0") // stop suma(i) s = 0 while(i < 20) s = s + ax[i] i = i + 2 return s printa() i = 0 while(i < 20) print(ax[i]) i = i + 1 #noframe core0() asm("mov sp #3000") asm("mov fp #3500") // printa() s0 = suma(0) asm("sync") s = s0 + s1 print(s) asm("trap r0 #0") #noframe core1() asm("mov sp #4000") asm("mov fp #4500") s1 = suma(1) asm("sync") asm("trap r0 #0") #noframe initdata() asm(".data 1100") asm(" 1 2 3 4 5 6 7 8 9 10") asm(" 11 12 13 14 15 16 17 18 19 20")