         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.section	.rodata
				.align 32
		.LC0:
				.byte	5
				.string	"less "
				.zero	249
				.align 32
		.LC1:
				.byte	6
				.string	"equal "
				.zero	248
				.align 32
		.LC2:
				.byte	8
				.string	"Greater "
				.zero	246
				.align 32
		.LC3:
				.byte	7
				.string	" less= "
				.zero	247
				.align 32
		.LC4:
				.byte	6
				.string	"noteq "
				.zero	248
				.align 32
		.LC5:
				.byte	9
				.string	"Greater= "
				.zero	245
				.align 32
		.LC6:
				.byte	8
				.string	"Greater="
				.zero	246
				.globl	main
		main:
		.LFB189:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				pushl	%ecx
				subl	$6712, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -6716(%ebp)
				movl	%gs:20, %esi
				movl	%esi, -28(%ebp)
				xorl	%esi, %esi
				subl	$8, %esp
				pushl	-6716(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
    2 %ownlongrealarray a(1:6)=0.99,1.0,1.01,0.99,1.0,1.01;
				leal	-6496(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	A.6021@GOTOFF(%ebx), %eax
				movl	%eax, -6496(%ebp)
				movl	$8, -6492(%ebp)
    3 %longreal x; %integer i
    4 %for i=1,1,3 %cycle
				movl	$0, -6712(%ebp)
		.L2:
				cmpl	$3, -6712(%ebp)
				je	.L68
				addl	$1, -6712(%ebp)
				nop
		.L4:
				movl	$0, -6708(%ebp)
		.LBB180:
		.LBB181:
				subl	$12, %esp
				pushl	-6708(%ebp)
				call	exit@PLT
		.LBE181:
		.LBE180:
		.LFE189:
				.data
				.align 32
		A.6021:
				.long	2061584302
				.long	1072672276
				.long	0
				.long	1072693248
				.long	-1030792151
				.long	1072703733
				.long	2061584302
				.long	1072672276
				.long	0
				.long	1072693248
				.long	-1030792151
				.long	1072703733
				.section	.text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
				.globl	__x86.get_pc_thunk.bx
				.hidden	__x86.get_pc_thunk.bx
		__x86.get_pc_thunk.bx:
		.LFB190:
				movl	(%esp), %ebx
				ret
		.LFE190:
		.Letext0:
    5 x=a(i)
				movl	-6712(%ebp), %eax
				subl	$1, %eax
				fldl	A.6021@GOTOFF(%ebx,%eax,8)
				fstpl	-6704(%ebp)
				fldl	-6704(%ebp)
				fstpl	-6688(%ebp)
		.LBB92:
		.LBB93:
				fldl	-6688(%ebp)
				fabs
				fld1
				fstpl	-6696(%ebp)
		.LBE93:
		.LBE92:
		.LBB94:
		.LBB95:
				fldl	-6696(%ebp)
				fxch	%st(1)
		.LBE95:
		.LBE94:
    6 %if mod(x)<mod(1.0) %then printstring("less ")
				fucomip	%st(1), %st
				fstp	%st(0)
				jnb	.L69
		.LBB96:
				leal	-3612(%ebp), %eax
				leal	.LC0@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-6428(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3100(%ebp), %eax
				leal	-6428(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE96:
		.LBB97:
		.LBB98:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-3100(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L9
		.L69:
		.LBE98:
		.LBE97:
				nop
		.L9:
				fldl	-6704(%ebp)
				fstpl	-6672(%ebp)
		.LBB99:
		.LBB100:
				fldl	-6672(%ebp)
				fabs
				fld1
				fstpl	-6680(%ebp)
		.LBE100:
		.LBE99:
		.LBB101:
		.LBB102:
				fldl	-6680(%ebp)
		.LBE102:
		.LBE101:
    7 %if mod(x)=mod(1.0) %then printstring("equal ")
				fucomi	%st(1), %st
				jp	.L81
				fucomip	%st(1), %st
				fstp	%st(0)
				jne	.L70
		.LBB103:
				leal	-3612(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-6172(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2844(%ebp), %eax
				leal	-6172(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE103:
		.LBB104:
		.LBB105:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2844(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L14
		.L81:
				fstp	%st(0)
				fstp	%st(0)
		.L70:
		.LBE105:
		.LBE104:
				nop
		.L14:
				fldl	-6704(%ebp)
				fstpl	-6656(%ebp)
		.LBB106:
		.LBB107:
				fldl	-6656(%ebp)
				fabs
				fld1
				fstpl	-6664(%ebp)
		.LBE107:
		.LBE106:
		.LBB108:
		.LBB109:
				fldl	-6664(%ebp)
		.LBE109:
		.LBE108:
    8 %if mod(x)>mod(1.0) %then printstring("Greater ")
				fucomip	%st(1), %st
				fstp	%st(0)
				jnb	.L71
		.LBB110:
				leal	-3612(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-5916(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2588(%ebp), %eax
				leal	-5916(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE110:
		.LBB111:
		.LBB112:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2588(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L19
		.L71:
		.LBE112:
		.LBE111:
				nop
		.L19:
				fldl	-6704(%ebp)
				fstpl	-6640(%ebp)
		.LBB113:
		.LBB114:
				fldl	-6640(%ebp)
				fabs
				fld1
				fstpl	-6648(%ebp)
		.LBE114:
		.LBE113:
		.LBB115:
		.LBB116:
				fldl	-6648(%ebp)
				fxch	%st(1)
		.LBE116:
		.LBE115:
    9 %if mod(x)<=mod(1.0) %then printstring(" less= ")
				fucomip	%st(1), %st
				fstp	%st(0)
				ja	.L72
		.LBB117:
				leal	-3612(%ebp), %eax
				leal	.LC3@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-5660(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2332(%ebp), %eax
				leal	-5660(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE117:
		.LBB118:
		.LBB119:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2332(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L24
		.L72:
		.LBE119:
		.LBE118:
				nop
		.L24:
				fldl	-6704(%ebp)
				fstpl	-6624(%ebp)
		.LBB120:
		.LBB121:
				fldl	-6624(%ebp)
				fabs
				fld1
				fstpl	-6632(%ebp)
		.LBE121:
		.LBE120:
		.LBB122:
		.LBB123:
				fldl	-6632(%ebp)
		.LBE123:
		.LBE122:
   10 %if mod(x)#mod(1.0) %then printstring("noteq ")
				fucomi	%st(1), %st
				jp	.L82
				fucomip	%st(1), %st
				fstp	%st(0)
				je	.L73
				jmp	.L27
		.L82:
				fstp	%st(0)
				fstp	%st(0)
		.L27:
		.LBB124:
				leal	-3612(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-5404(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2076(%ebp), %eax
				leal	-5404(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE124:
		.LBB125:
		.LBB126:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2076(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L29
		.L73:
		.LBE126:
		.LBE125:
				nop
		.L29:
				fldl	-6704(%ebp)
				fstpl	-6608(%ebp)
		.LBB127:
		.LBB128:
				fldl	-6608(%ebp)
				fabs
				fld1
				fstpl	-6616(%ebp)
		.LBE128:
		.LBE127:
		.LBB129:
		.LBB130:
				fldl	-6616(%ebp)
		.LBE130:
		.LBE129:
   11 %if mod(x)>=mod(1.0) %then printstring("Greater= ")
				fucomip	%st(1), %st
				fstp	%st(0)
				ja	.L74
		.LBB131:
				leal	-3612(%ebp), %eax
				leal	.LC5@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-5148(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1820(%ebp), %eax
				leal	-5148(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE131:
		.LBB132:
		.LBB133:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1820(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L34
		.L74:
		.LBE133:
		.LBE132:
				nop
		.L34:
				fld1
				fstpl	-6592(%ebp)
		.LBB134:
		.LBB135:
				fldl	-6592(%ebp)
				fldl	-6704(%ebp)
				fstpl	-6600(%ebp)
		.LBE135:
		.LBE134:
		.LBB136:
		.LBB137:
				fldl	-6600(%ebp)
				fabs
				fxch	%st(1)
		.LBE137:
		.LBE136:
   12 %if mod(1.0)<mod(x) %then printstring("less ")
				fucomip	%st(1), %st
				fstp	%st(0)
				jnb	.L75
		.LBB138:
				leal	-3612(%ebp), %eax
				leal	.LC0@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-4892(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-4892(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE138:
		.LBB139:
		.LBB140:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1564(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L39
		.L75:
		.LBE140:
		.LBE139:
				nop
		.L39:
				fld1
				fstpl	-6576(%ebp)
		.LBB141:
		.LBB142:
				fldl	-6576(%ebp)
				fldl	-6704(%ebp)
				fstpl	-6584(%ebp)
		.LBE142:
		.LBE141:
		.LBB143:
		.LBB144:
				fldl	-6584(%ebp)
				fabs
		.LBE144:
		.LBE143:
   13 %if mod(1.0)=mod(x) %then printstring("equal ")
				fucomi	%st(1), %st
				jp	.L83
				fucomip	%st(1), %st
				fstp	%st(0)
				jne	.L76
		.LBB145:
				leal	-3612(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-4636(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				leal	-4636(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE145:
		.LBB146:
		.LBB147:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L44
		.L83:
				fstp	%st(0)
				fstp	%st(0)
		.L76:
		.LBE147:
		.LBE146:
				nop
		.L44:
				fld1
				fstpl	-6560(%ebp)
		.LBB148:
		.LBB149:
				fldl	-6560(%ebp)
				fldl	-6704(%ebp)
				fstpl	-6568(%ebp)
		.LBE149:
		.LBE148:
		.LBB150:
		.LBB151:
				fldl	-6568(%ebp)
				fabs
		.LBE151:
		.LBE150:
   14 %if mod(1.0)>mod(x) %then printstring("Greater ")
				fucomip	%st(1), %st
				fstp	%st(0)
				jnb	.L77
		.LBB152:
				leal	-3612(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-4380(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-4380(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE152:
		.LBB153:
		.LBB154:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1052(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L49
		.L77:
		.LBE154:
		.LBE153:
				nop
		.L49:
				fld1
				fstpl	-6544(%ebp)
		.LBB155:
		.LBB156:
				fldl	-6544(%ebp)
				fldl	-6704(%ebp)
				fstpl	-6552(%ebp)
		.LBE156:
		.LBE155:
		.LBB157:
		.LBB158:
				fldl	-6552(%ebp)
				fabs
				fxch	%st(1)
		.LBE158:
		.LBE157:
   15 %if mod(1.0)<=mod(x) %then printstring(" less= ")
				fucomip	%st(1), %st
				fstp	%st(0)
				ja	.L78
		.LBB159:
				leal	-3612(%ebp), %eax
				leal	.LC3@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-4124(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				leal	-4124(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE159:
		.LBB160:
		.LBB161:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-796(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L54
		.L78:
		.LBE161:
		.LBE160:
				nop
		.L54:
				fld1
				fstpl	-6528(%ebp)
		.LBB162:
		.LBB163:
				fldl	-6528(%ebp)
				fldl	-6704(%ebp)
				fstpl	-6536(%ebp)
		.LBE163:
		.LBE162:
		.LBB164:
		.LBB165:
				fldl	-6536(%ebp)
				fabs
		.LBE165:
		.LBE164:
   16 %if mod(1.0)#mod(x) %then printstring("noteq ")
				fucomi	%st(1), %st
				jp	.L84
				fucomip	%st(1), %st
				fstp	%st(0)
				je	.L79
				jmp	.L57
		.L84:
				fstp	%st(0)
				fstp	%st(0)
		.L57:
		.LBB166:
				leal	-3612(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3868(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-3868(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE166:
		.LBB167:
		.LBB168:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L59
		.L79:
		.LBE168:
		.LBE167:
				nop
		.L59:
				fld1
				fstpl	-6504(%ebp)
		.LBB169:
		.LBB170:
				fldl	-6504(%ebp)
				fstpl	-6512(%ebp)
		.LBE170:
		.LBE169:
		.LBB171:
		.LBB172:
				fldl	-6512(%ebp)
				fabs
				fldl	-6704(%ebp)
				fstpl	-6520(%ebp)
		.LBE172:
		.LBE171:
		.LBB173:
		.LBB174:
				fldl	-6520(%ebp)
				fabs
		.LBE174:
		.LBE173:
   17 %if mod(mod(1.0))>=mod(x) %then printstring("Greater=")
				fucomip	%st(1), %st
				fstp	%st(0)
				ja	.L80
		.LBB175:
				leal	-3612(%ebp), %eax
				leal	.LC6@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3356(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-3356(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE175:
		.LBB176:
		.LBB177:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L65
		.L80:
		.LBE177:
		.LBE176:
				nop
		.L65:
		.LBB178:
		.LBB179:
				call	_imp_newline@PLT
		.LBE179:
		.LBE178:
   18 newline
   19 %repeat
				jmp	.L2
		.L68:
   20 %endofprogram
   21 Statements compiled
