         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				.section .mdebug.abi32
				.previous
				.nan	legacy
				.module	fp=xx
				.module	nooddspreg
				.abicalls
		$Ltext0:
				.rdata
				.align	2
		$LC1:
				.byte	13
				.ascii	"WRONG ANSWERS\000"
				.space	241
				.align	2
		$LC0:
				.byte	7
				.ascii	"TEST OK\000"
				.space	247
				.align	2
				.globl	main
				LFB185 = .
				.set	nomips16
				.set	nomicromips
				.ent	main
		main:
				.frame	$sp,1304,$31		# vars= 1032, regs= 2/0, args= 256, gp= 8
				.mask	0x80010000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-1304
				sw	$31,1300($sp)
				sw	$16,1296($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	256
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				sw	$2,1292($sp)
    2 !***********************************************************************
				lw	$25,%call16(_imp_initialise)($28)
				.reloc	1f,R_MIPS_JALR,_imp_initialise
			1:	jalr	$25
				nop
				LVL1 = .
				lw	$28,256($sp)
				LVL2 = .
				LVL3 = .
				LDL1 = .
				LDL2 = .
				LDL3 = .
				LDL4 = .
				LDL5 = .
				LDL6 = .
				LDL7 = .
				LDL8 = .
				LDL9 = .
				LDL10 = .
				LDL11 = .
				LDL12 = .
				LDL13 = .
				LDL14 = .
				LDL15 = .
				LDL16 = .
				LDL17 = .
				LDL18 = .
				LDL19 = .
				LDL20 = .
				lui	$4,%hi(CH.5997)
				addiu	$4,$4,%lo(CH.5997)
				addiu	$5,$4,17
				.option	pic0
				b	$L2
				.option	pic2
				li	$16,4003			# 0xfa3
				LVL4 = .
		$L27:
				L6 = .
		$L4:
				addiu	$4,$4,1
				LVL5 = .
    3 !*    SHOULD RUN WITHOUT OPUT. LOOPS ON SOME COMPILERS DUE TO          *
    4 !*    MISSING LABELS GIVING JUMPS WITH ZERO OFFSET                     *
    5 !***********************************************************************
    6 %OWNBYTEINTEGERARRAY CH(0:16)='0','1','2','3','4','5','6','7','8',
    7       '9','A','B','C','D','E','F','G'
    8 %INTEGER I,K,L
    9 %CONSTINTEGER J=0
   10       I=4000; L=10
   11       %IF I>4095 %AND J#0 %THEN I=I+1
   12       %IF I>4095 %AND J#0 %THEN I=I+1 %ELSE I=I-1
   13       %IF I>4095 %AND J#0 %THEN %START; %FINISH
   14       %IF I>4095 %AND J#0 %THEN %START
   15          I=I+1
   16       %FINISH %ELSE I=I-1
   17       %IF (I>4095 %AND J#0 ) %AND L=1 %THEN I=I+1
   18       %IF (I>4095 %AND J#0) %OR L=1 %THEN I=I+1
   19       %UNLESS I>4095 %AND J#0 %THEN I=I+1
   20       %UNLESS I>4095 %AND J#0 %THEN I=I+1 %ELSE I=I-1
   21       %UNLESS I>4095 %AND J#0 %THEN %START; %FINISH
   22       %UNLESS I>4095 %AND J#0 %THEN %START
   23          I=I+1
   24       %FINISH %ELSE I=I-1
   25       %UNLESS (I>4095 %AND J#0 ) %AND L=1 %THEN I=I+1
   26       %UNLESS (I>4095 %AND J#0) %OR L=1 %THEN I=I+1
   27        %FOR K=0,1,16 %CYCLE
   28          %UNLESS '0'<=CH(K)<='9' %OR 'A'<=CH(K)<='F' %THEN I=I+1
   29       %REPEAT
   30       %IF I=4004 %THEN PRINTSTRING("TEST OK") %ELSE %C
				beq	$4,$5,$L3
				li	$2,4004			# 0xfa4
				LVL6 = .
		$L2:
				LBB12 = .
				beq	$16,$2,$L28
				lui	$2,%hi($LC1)
				L7 = .
				LBB14 = .
				addiu	$2,$2,%lo($LC1)
				addiu	$3,$sp,1036
				addiu	$4,$2,256
				LVL11 = .
		$L13:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L13
				addiu	$3,$3,16
				addiu	$2,$sp,1036
				addiu	$3,$sp,524
				addiu	$4,$sp,1292
		$L14:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L14
				addiu	$3,$3,16
				addiu	$2,$sp,524
				addiu	$3,$sp,1036
				addiu	$4,$sp,780
		$L15:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L15
				addiu	$3,$3,16
				LBE14 = .
				LBB15 = .
				LBB16 = .
				addiu	$2,$sp,1052
				addiu	$3,$sp,16
				addiu	$4,$sp,1292
		$L16:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L16
				addiu	$3,$3,16
				lw	$4,1036($sp)
				lw	$5,1040($sp)
				lw	$6,1044($sp)
				lw	$7,1048($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL12 = .
				lw	$28,256($sp)
				LBE16 = .
				LBE15 = .
				li	$5,5			# 0x5
				move	$4,$16
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL13 = .
				lw	$28,256($sp)
				L12 = .
				LVL14 = .
				LBB17 = .
				LBB18 = .
				move	$4,$0
		$L29:
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL15 = .
		$L28:
				LBE18 = .
				LBE17 = .
				LBB19 = .
   31          PRINTSTRING("WRONG ANSWERS") %AND WRITE(I,5)
				lbu	$2,0($4)
				LVL7 = .
				addiu	$3,$2,-48
				andi	$3,$3,0x00ff
				sltu	$3,$3,10
				bne	$3,$0,$L4
				addiu	$2,$2,-65
				L5 = .
				LVL8 = .
				LBE12 = .
				LBB13 = .
				lui	$2,%hi($LC0)
				addiu	$2,$2,%lo($LC0)
				addiu	$3,$sp,1036
				addiu	$4,$2,256
				LVL16 = .
		$L8:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L8
				addiu	$3,$3,16
				addiu	$2,$sp,1036
				addiu	$3,$sp,268
				addiu	$4,$sp,1292
		$L9:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L9
				addiu	$3,$3,16
				addiu	$2,$sp,268
				addiu	$3,$sp,780
				addiu	$4,$sp,524
		$L10:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L10
				addiu	$3,$3,16
				LBE19 = .
				LBB20 = .
				LBB21 = .
				addiu	$2,$sp,796
				addiu	$3,$sp,16
				addiu	$4,$sp,1036
		$L11:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L11
				addiu	$3,$3,16
				lw	$4,780($sp)
				lw	$5,784($sp)
				lw	$6,788($sp)
				lw	$7,792($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL17 = .
				lw	$28,256($sp)
				LBE21 = .
				LBE20 = .
				.option	pic0
				b	$L29
				.option	pic2
				move	$4,$0
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
				.rdata
				.align	2
		CH.5997:
				.byte	48
				.byte	49
				.byte	50
				.byte	51
				.byte	52
				.byte	53
				.byte	54
				.byte	55
				.byte	56
				.byte	57
				.byte	65
				.byte	66
				.byte	67
				.byte	68
				.byte	69
				.byte	70
				.byte	71
				.text
		$Letext0:
   32 %ENDOFPROGRAM
   29 Statements compiled
				andi	$2,$2,0x00ff
				LVL9 = .
				sltu	$2,$2,6
				bne	$2,$0,$L4
				nop
				LBE13 = .
				.option	pic0
				b	$L27
				.option	pic2
				addiu	$16,$16,1
				LVL10 = .
		$L3:
