Exercise 6a   Name _______________ __/39

Document last modified: 

  1. #include <iostream.h>
  2. void Assign(int &X, int &Y) {
  3.        X = Y;
  4. }
  5.  
  6. void Sum( int B[], int &n,
                              int &sum) {
  7.        int i;
  8.        sum=0;
  9.        for( i=0; i<n; i++)
  10.                Assign(B[i], i);
  11.         for (i=0; i<n; i++ )
  12.                sum = sum + B[i];
  13. }
  14.  
  15. void main(void) {
  16.        int A[4];
  17.        int N;
  18.        int result;
  19.        N=4;
  20.        Sum(A, N, result);
  21.        cout << result;
  22. }
Table 2. 
Address Symbol Value
100 A 0
101   1
102   2
103   3
104 N 4
105 result 6
106 i ?
Table 1

_Address_|____Memory Contents___________
main 654 |                    | IP
AR       |_1.______21_________|
     655 |To Operating System | DL
         |____________________|
     656 | main Registers     | TMP
_________|____________________|_____
Sum  657 |                    | 
AR    A  |_2.______100________|PAR[1] 3. 
     658 |                    | 
      N  |_4.______104________|PAR[2] 5.
     659 |                    | 
  result |_6.______105________|PAR[3] 7.
     660 |                    | 
         |_8._______10________| _IP_  9.
     661 |                    | 
         |_10._____654________| _DL_  11.
     662 |                    | 
_________|_12._Sum registers__| _TMP  13.
AR   663 |                    | 
Assign X |_14. 100,101,102,103|PAR[1] 15.
     664 |                    | 
       Y |_16.____106_________|PAR[2] 17.
     665 |                    | 
         |_18.________________| _IP_  19.
     666 |                    | 
         |_20.____657_________| _DL_  21.
     667 |                    | 
         |_22.________________| _TMP  23.
     668 |                    | 
         |_24.________________| ____  25.
     669 |                    | 
         |_26.________________| ____  27.
     670 |                    | 
         |_28.________________| ____  29.