|
It's very easy (it is a matter of sticking to an arrangement):
|
/* ------------------------------------------------------- sumRange(A,a,b): returns (A[a] + A[a+1] + ... + A[b-1]) ------------------------------------------------------- */ int sumRange(int[] A, int a, int b ) { int i, s; s = 0; for (i = a, i < b; i++) s = s + A[i]; return(s); } |
DEMO: /home/cs255001/demo/asm/8-sub/reg-local1.s
Register assignments:
Parameters:
A in r0, a in r1, b in r2
Local variables:
i in r3, s in r4
sumRange: // When sumRange begins, we will have: r0 = A, r1 = a, r2 = b // We will use r3 as local variable i and r4 as local variable s |
DEMO: /home/cs255001/demo/asm/8-sub/reg-local1.s