         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.globl	main
		main:
		.LFB185:
		.LVL0:
				pushq	%r12
				pushq	%rbp
				pushq	%rbx
    2 %integer i,j,k
				call	_imp_initialise@PLT
		.LVL1:
				leaq	A.6390(%rip), %rbp
				leaq	80(%rbp), %r12
		.LVL2:
		.L2:
    3 %ownintegerarray a(0:19)=10,9,8,7,6,5,4,3,2,1,0-1,-2,-3,-4,-5,-6,-7,-8,-9,-10;
    4                                               ! 0-1, not 0, -1 !!
    5 j=4
    6 %for k=0,1,19 %cycle
    7 write(a(k)//4,4); write(a(k)//j,4);  newline
				movl	0(%rbp), %ebx
				leal	3(%rbx), %edi
				testl	%ebx, %ebx
				cmovns	%ebx, %edi
				sarl	$2, %edi
				movslq	%edi, %rdi
				movl	$4, %esi
				call	_imp_writelong@PLT
		.LVL3:
    8 %repeat
				movslq	%ebx, %rbx
				leaq	3(%rbx), %rdi
				testq	%rbx, %rbx
				cmovns	%rbx, %rdi
				sarq	$2, %rdi
				movl	$4, %esi
				call	_imp_writelong@PLT
		.LVL4:
		.LBB6:
		.LBB7:
				call	_imp_newline@PLT
		.LVL5:
		.LDL1:
				addq	$4, %rbp
		.LBE7:
		.LBE6:
    9 %endofprogram
				cmpq	%r12, %rbp
				jne	.L2
		.L3:
		.LVL6:
		.LBB8:
		.LBB9:
				movl	$0, %edi
				call	exit@PLT
		.LVL7:
		.LBE9:
		.LBE8:
		.LFE185:
				.section	.rodata
				.align 32
		A.6390:
				.long	10
				.long	9
				.long	8
				.long	7
				.long	6
				.long	5
				.long	4
				.long	3
				.long	2
				.long	1
				.long	-1
				.long	-2
				.long	-3
				.long	-4
				.long	-5
				.long	-6
				.long	-7
				.long	-8
				.long	-9
				.long	-10
		.Letext0:
?I unused
   10 Statements compiled
