|
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