/* * CS201: Data Structures * Assignment 4 Part II * * File : ramprog.txt * Description: RAM Program to test RAM implementation. * The program finds out the maximum of the integers * read from the input-tape. The input-tape * consists of a count (number of input integers) * followed by the integers themselves. The program * outputs a single integer on output-tape, the * maximum of the input integers. * * The program keeps the maximum integer in c(2) and * the loop variable (count) in c(1). * * Error checking is not done so as to keep the * program short. So be careful with the contents * of input-tape while running the program. * * Known bugs or features :): * The program will fail if the input array has * less than 2 elements. * * Department of Computer Science and Engineering, * Indian Institute of Technology, Guwahati. * India. * * Dated: 20 Aug, 2002. */ Add. Label Instruction Code Comments 0 Start: READ 0 7 0 0 ;Read count 1 SUB =1 4 1 1 ;Decrement it 2 STORE 1 2 0 1 ;Store it in c(1) 3 READ 2 7 0 2 ;Put first int in 'max' 4 Loop: READ 0 7 0 0 ;Read next int 5 SUB 2 4 0 2 ;sub max from it 6 JGTZ UpdateMax 10 0 13 ;if int>max, max=int 7 Continue: LOAD 1 1 0 1 ;Decrememnt count 8 SUB =1 4 1 1 ; 9 STORE 1 2 0 1 ; 10 JGTZ Loop 10 0 4 ; 11 WRITE 2 8 0 2 ;Write out max 12 HALT 12 0 0 ;End of program 13 UpdateMax: ADD 2 3 0 2 ;Add max to c(0) to ;restore the int read 14 STORE 2 2 0 2 ;Store new max 15 JUMP Continue 9 0 7 ;continue with loop Hence the program (n*3 array) will be as follows 7 0 0 4 1 1 2 0 1 7 0 2 7 0 0 4 0 2 10 0 13 1 0 1 4 1 1 2 0 1 10 0 4 8 0 2 12 0 0 3 0 2 2 0 2 9 0 7 Sample input (on input tape): 5 10 -3 5 20 9 Sample output (on output-tape): 20