         Edinburgh IMP77 Compiler - Version 8.4
    1 %external %integer fred
				.section	".text"
		.Ltext0:
				.align 4
				.global BERT
				.proc	020
		BERT:
		.LFB185:
    2 %external %routine bert(%integer i)
		.LVL0:
    3   fred = i
				sethi	%hi(FRED), %g1
				sethi	%hi(FRED), %g1
				mov	22, %g2
				st	%g2, [%g1+%lo(FRED)]
		.LVL6:
		.LBE9:
		.LBE8:
    4 %end
    5
				jmp	%o7+8
				 st	%o0, [%g1+%lo(FRED)]
		.LFE185:
				.align 4
				.global SHIELA
				.proc	020
		SHIELA:
		.LFB186:
    6
    7 %external %routine shiela(%integer k)
				.register	%g2, #scratch
		.LVL1:
    8 %own %integer local = 42
    9   k = local
   10   local = local + 1
				sethi	%hi(LOCAL.6059), %g2
				lduw	[%g2+%lo(LOCAL.6059)], %g1
				add	%g1, 1, %g1
		.LVL2:
   11 %end
   12
				jmp	%o7+8
				 st	%g1, [%g2+%lo(LOCAL.6059)]
		.LFE186:
				.align 4
				.global main
				.proc	04
		main:
		.LFB187:
   13 %begin
		.LVL3:
				save	%sp, -176, %sp
		.LVL4:
   14   bert(22)
				mov	%i1, %o1
				call	_imp_initialise, 0
				 mov	%i0, %o0
		.LVL5:
		.LBB8:
		.LBB9:
   15   shiela(fred)
				call	SHIELA, 0
				 mov	22, %o0
		.LVL7:
		.LBB10:
		.LBB11:
				call	exit, 0
				 mov	0, %o0
		.LVL8:
		.LBE11:
		.LBE10:
				nop
		.LFE187:
				.section	".data"
				.align 4
		LOCAL.6059:
				.long	42
				.common	FRED,4,4
				.section	".text"
		.Letext0:
   16 %end %of %programm
   13 Statements compiled
