PROCS PROC hanoi ( n src dst tmp ) CODE ld [n],%t0 cmp %t0,0 bg L0 ba L1 L0: ld [n],%t1 sub %t1,1,%t2 ld [src],%t3 ld [tmp],%t4 ld [dst],%t5 st %t5,[$a3] st %t4,[$a2] st %t3,[$a1] st %t2,[$a0] call hanoi ld [n],%t6 st %t6,[$a0] call PCAT$write_int st " ",[$a0] call PCAT$write_string ld [src],%t7 st %t7,[$a0] call PCAT$write_int st " ",[$a0] call PCAT$write_string ld [dst],%t8 st %t8,[$a0] call PCAT$write_int call PCAT$write_newline ld [n],%t9 sub %t9,1,%t10 ld [tmp],%t11 ld [dst],%t12 ld [src],%t13 st %t13,[$a3] st %t12,[$a2] st %t11,[$a1] st %t10,[$a0] call hanoi ba L2 L1: L2: return ENDCODE CODE st 3,[$a3] st 2,[$a2] st 1,[$a1] st 5,[$a0] call hanoi return ENDCODE