Index Looping 7

Flowchart a procedure to read in 50 data values, to sum only those values which are positive (greater than zero) and to print this sum.

Flowchart      RAMM Machine Language Program     RAMM Assembly Language Program
    

Flowchart:



RAMM Machine Language Program:

0000  00  K
0000  01  SUM
0000  02  A
0000  03  K0
0001  04  K1
0050  05  K50
5000  06  STRT  No operation
1204  07        Load (A-Reg) with (K1)
2000  08        Store (A-Reg) at K
1203  09        Load (A-Reg) with (K0)
2001  10        Store (A-Reg) at SUM
6502  11  LOOP  Read A
1202  12        Load (A-Reg) with (A)
3618  13        Jump if (A-Reg) is zero to TSTK
3718  14        Jump if (A-Reg) is negative to TSTK
1201  15        Load (A-Reg) with SUM
1402  16        Add (A) to (A-Reg)
2001  17        Store (A-Reg) at SUM
1200  18  TSTK  Load (A-Reg) with (K)
1505  19        Subtract (K50) from (A-Reg)
3723  20        Jump if (A-Reg) is negative to INCK
3627  21        Jump if (A-Reg) is zero to EXIT
7527  22        Unconditional Jump to EXIT
1200  23  INCK  Load (A-Reg) with (K)
1404  24        Add (K1) to (A-Reg)
2000  25        Store (A-Reg) at K
7511  26        Unconditional Jump to LOOP
6601  27  EXIT  Print SUM
0000  28        Unconditional Jump to
9906  29        End and begin program execution at STRT


RAMM Assembly Language Program:

K     BSS 0001
SUM   BSS 0001
A     BSS 0001
K0    DEC 0000
K1    DEC 0001
K50   DEC 0050
STRT  NOP
      LDA K1
      STA K
      LDA K0
      STA SUM
LOOP  RDI A
      LDA A
      AZJ TSTK
      AMJ TSTK
      LDA SUM
      IAD A
      STA SUM
TSTK  LDA K
      ISB K50
      AMJ INCK
      AZJ EXIT
      UNJ EXIT
INCK  LDA K
      IAD K1
      STA K
      UNJ LOOP
EXIT  PRI SUM
      HLT
      END STRT