         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
		.Ltext0:
				.globl	main
		main:
		.LFB185:
		.LVL0:
				subq	$2472, %rsp
				movq	%fs:40, %rax
				movq	%rax, 2456(%rsp)
				xorl	%eax, %eax
    2 !***********************************************************************
				call	_imp_initialise@PLT
		.LVL1:
    3 !*    TESTS CLEARING RECORDARRAY FOR OVERWRITING OFF END               *
    4 !***********************************************************************
    5 %INTEGER I
    6 %RECORDFORMAT F(%STRING(15)NAME,%INTEGER I,J,K,%LONGREAL X,Y, %C
    7       %LONGREALARRAY A(0:20))
    8 %RECORD(F)%ARRAY ONE(1:100)
    9 %RECORD(F)%ARRAY TWO(1:2)
   10       TWO(1)_NAME="PETE"
   11       %CYCLE I=1,1,100
   12          ONE(I)=0
				movq	%rsp, %rsi
				leaq	1536(%rsp), %rdi
				movl	$255, %edx
				call	_imp_strncpy@PLT
		.LVL2:
				movl	$100, %eax
		.LVL3:
		.L2:
		.LDL1:
   13       %REPEAT
   14       %IF TWO(1)_NAME#"PETE" %THEN PRINTSTRING("***ERROR***")%else %c
				subl	$1, %eax
		.LVL4:
				jne	.L2
		.L3:
   15          printstring("TEST OK")
   16
				leaq	256(%rsp), %rsi
				leaq	1536(%rsp), %rdi
				call	_imp_strcmp@PLT
		.LVL5:
				testl	%eax, %eax
				je	.L4
		.LVL6:
		.LBB13:
   17 %ENDOFPROGRAM
   11 Statements compiled
				movabsq	$5931049747571419690, %rax
				movl	$2763306, %edx
				movq	%rax, 1281(%rsp)
				movq	%rdx, 1289(%rsp)
				leaq	1297(%rsp), %rdi
				movl	$239, %ecx
				movl	$0, %eax
				rep stosb
				movb	$11, 1280(%rsp)
				leaq	512(%rsp), %rdi
				leaq	1280(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL7:
				movb	$11, 512(%rsp)
				leaq	1024(%rsp), %rdi
				leaq	512(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LBE13:
		.LBB14:
		.LBB15:
				subq	$256, %rsp
				leaq	1280(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				call	_imp_printstring@PLT
		.LVL8:
				addq	$256, %rsp
		.L5:
		.LVL9:
		.LBE15:
		.LBE14:
		.LBB16:
		.LBB17:
				movl	$0, %edi
				call	exit@PLT
		.LVL10:
		.L4:
		.LBE17:
		.LBE16:
		.LBB18:
				movabsq	$21197623525590356, %rax
				movl	$0, %edx
				movq	%rax, 1281(%rsp)
				movq	%rdx, 1289(%rsp)
				leaq	1297(%rsp), %rdi
				movl	$239, %ecx
				movl	$0, %eax
				rep stosb
				movb	$7, 1280(%rsp)
				leaq	768(%rsp), %rdi
				leaq	1280(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL11:
				movb	$7, 768(%rsp)
				leaq	1280(%rsp), %rdi
				leaq	768(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LBE18:
		.LBB19:
		.LBB20:
				subq	$256, %rsp
				leaq	1536(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				call	_imp_printstring@PLT
		.LVL12:
				addq	$256, %rsp
				jmp	.L5
		.LBE20:
		.LBE19:
		.LFE185:
		.Letext0:
