TITLE "mp2.a by Douglas Jones" ; output 20 successive triangular numbers 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 R3,2 ; -- parameter LIS R4,2 ; -- parameter LIL R1,PUTAT JSRS R1,R1 ; putat(2,2) LIS R8,1 ; i = 1 -- count numbers LIS R9,1 ; n = 1 -- the ith number LOOP: ; do { MOVE R3,R9 ; -- parameter LIS R4,0 ; -- parameter LIL R1,PUTDECU JSRS R1,R1 ; putdecu(n,0) LIS R3,' ' ; -- parameter LIL R1,PUTCHAR JSRS R1,R1 ; putchar(' ') ADDSI R8,1 ; i = i + 1; ADD R9,R9,R8 ; n = n + i; -- advance CMPI R8,20 BLE LOOP ; } until (i > 20) ; --- end aplication code --- ADDI R2,R2,-ARSIZE LOADS R1,R2 JUMPS R1 ; return END