RAMM Machine Language Program:
0000 00 Integer constant 0, I0
0001 01 Integer constant 1, I1
0200 02 Integer constant 200, I200
0000 03 Storage for K
0000 04 Storage for HDR
0000 05 Storage for SUM
0000 06 Storage for VAL
5000 07 STRT No operation
1200 08 (A-reg) <- (I0)
2003 09 (K) <- (A-reg)
6504 10 Read HDR
1200 11 (A-reg) <- (I0)
2005 12 (SUM) <- (A-reg)
6506 13 LOOP Read VAL
1206 14 (A-reg) <- (VAL)
1502 15 (A-reg) <- (A-reg) - (I200)
3621 16 If (A-reg) = 0, then jump to INCK
3721 17 If (A-reg) < 0, then jump to INCK
1205 18 (A-reg) <- (SUM)
1406 19 (A-reg) <- (A-reg) + (VAL)
2005 20 (SUM) <- (A-reg)
1203 21 INCK (A-reg) <- (K)
1401 22 (A-reg) <- (A-reg) + (I1)
2003 23 (K) <- (A-reg)
1504 24 (A-reg) <- (A-reg) - (HDR)
3713 25 If (A-reg) < 0, then jump to LOOP
6605 26 Print SUM
0000 27 Halt
9907 28 End; begin program execution at STRT
RAMM Assembly Language Program:
I0 DEC 0000
I1 DEC 0001
I200 DEC 0200
K BSS 0001
HDR BSS 0001
SUM BSS 0001
VAL BSS 0001
STRT NOP
LDA I0
STA K
RDI HDR
LDA I0
STA SUM
LOOP RDI VAL
LDA VAL
ISB I200
AZJ INCK
AMJ INCK
LDA SUM
IAD VAL
STA SUM
INCK LDA K
IAD I1
STA K
ISB HDR
AMJ LOOP
PRI SUM
HLT
END STRT