         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.globl	next_free_bound_index
				.bss
				.align 4
		next_free_bound_index:
				.zero	4
				.comm	_lb,384,32
				.comm	_ub,384,32
				.globl	main
		main:
		.LFB189:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				pushl	%ecx
				subl	$32, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				subl	$8, %esp
				pushl	4(%eax)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
    2   %integer a,b,c
    3
    4   a = 123
				movl	$123, -28(%ebp)
    5   b = 234
				movl	$234, -24(%ebp)
    6   c = 345
				movl	$345, -20(%ebp)
    7
    8   a = +123
				movl	$123, -28(%ebp)
    9   a = -123
				movl	$-123, -28(%ebp)
   10   a = ~123
				movl	$-124, -28(%ebp)
   11
   12 ! a = b+c
   13 ! a = b-c
   14   a = b*c
				movl	-24(%ebp), %eax
				imull	-20(%ebp), %eax
				movl	%eax, -28(%ebp)
   15 ! a = b//c
   16
   17 ! a = b^^c
   18
   19 ! a = b<<c
   20 ! a = b>>c
   21
   22   a = b!c
				movl	-24(%ebp), %eax
				orl	-20(%ebp), %eax
				movl	%eax, -28(%ebp)
   23   a = b!!c
				movl	-24(%ebp), %eax
				xorl	-20(%ebp), %eax
				movl	%eax, -28(%ebp)
				movl	-24(%ebp), %eax
				movl	%eax, -16(%ebp)
		.LBB6:
		.LBB7:
				movl	-16(%ebp), %eax
		.LBE7:
		.LBE6:
   24   a = |b|
				movl	%eax, -28(%ebp)
   25
   26 ! a = b&c
   27
   28   a = b %if a = b
				movl	-28(%ebp), %eax
				cmpl	-24(%ebp), %eax
				jne	.L15
				movl	-24(%ebp), %eax
				movl	%eax, -28(%ebp)
				jmp	.L4
		.L15:
				nop
		.L4:
   29   a = b %if a # b
				movl	-28(%ebp), %eax
				cmpl	-24(%ebp), %eax
				je	.L16
				movl	-24(%ebp), %eax
				movl	%eax, -28(%ebp)
				jmp	.L6
		.L16:
				nop
		.L6:
   30   a = b %if a > b
				movl	-28(%ebp), %eax
				cmpl	-24(%ebp), %eax
				jle	.L17
				movl	-24(%ebp), %eax
				movl	%eax, -28(%ebp)
				jmp	.L8
		.L17:
				nop
		.L8:
   31   a = b %if a < b
				movl	-28(%ebp), %eax
				cmpl	-24(%ebp), %eax
				jge	.L18
				movl	-24(%ebp), %eax
				movl	%eax, -28(%ebp)
				jmp	.L10
		.L18:
				nop
		.L10:
   32   a = b %if a <= b
				movl	-28(%ebp), %eax
				cmpl	-24(%ebp), %eax
				jg	.L19
				movl	-24(%ebp), %eax
				movl	%eax, -28(%ebp)
				jmp	.L12
		.L19:
				nop
		.L12:
   33   a = b %if a >= b
				movl	-28(%ebp), %eax
				cmpl	-24(%ebp), %eax
				jl	.L20
				movl	-24(%ebp), %eax
				movl	%eax, -28(%ebp)
				jmp	.L14
		.L20:
				nop
		.L14:
				movl	$0, -12(%ebp)
		.LBB8:
		.LBB9:
				subl	$12, %esp
				pushl	-12(%ebp)
				call	exit@PLT
		.LBE9:
		.LBE8:
		.LFE189:
				.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:
   34
   35 %endofprogram
   19 Statements compiled
