TITLE "A program to compute squares" USE "hawk.h" USE "monitor.h" ARSIZE = 4 INT MAIN S MAIN MAIN: ; entry point STORES R1,R2 ADDI R2,R2,ARSIZE ; --- begin aplication code --- LIS R8,0 ; count = 0 LIS R9,0 ; square = 0 LOOP: ; loop { ADD R9,R9,R8 ADD R9,R9,R8 ADDSI R9,1 ; square = square + count + count + 1 ADDSI R8,1 ; count = count + 1 MOVE R3,R8 ; -- param count LIS R4,3 ; -- param 3 LIL R1,PUTDEC JSRS R1,R1 ; putdec( count, 3 ) LEA R3,EQUALS ; -- param LIL R1,PUTS JSRS R1,R1 ; puts( " squared =" ) MOVE R3,R9 ; -- param square LIS R4,3 ; -- param 3 LIL R1,PUTDEC JSRS R1,R1 ; putdec( square, 3 ) LEA R3,SPACE ; -- param LIL R1,PUTS JSRS R1,R1 ; puts( ";" ) CMPI R8,10 BLT LOOP ; } while (count < 10) ; --- end aplication code --- ADDI R2,R2,-ARSIZE LOADS R1,R2 JUMPS R1 ; return ; --- begin aplication constants --- EQUALS: ASCII " squared =",0 SPACE: ASCII ";",0 END