         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.machinemode zarch
				.machine "zEC12"
		.text
		.Ltext0:
				.section	.rodata
				.align	2
		.LC0:
				.byte	7
				.string	"TEST OK"
				.zero	247
				.align	2
		.LC1:
				.byte	15
				.string	"Divide in error"
				.zero	239
		.text
				.align	8
		.globl main
		main:
		.LFB185:
		.LVL0:
				stmg	%r11,%r15,88(%r15)
				lay	%r15,-1448(%r15)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	1440(8,%r15),40(%r1)
    2 %externalroutinespec phex %alias "s_phex" (%integer x)
				brasl	%r14,_imp_initialise@PLT
		.LVL1:
		.LBB32:
		.LBB33:
    3 %integer i,j,k,corr,fail
    4 %integerfn div(%integer x,y)
    5 %result=x//y
				lghi	%r2,20
		.LBE33:
		.LBE32:
				aghik	%r4,%r2,3
				j	.L7
		.L22:
		.LBE36:
		.LBE35:
				aghik	%r4,%r2,7
				j	.L10
		.L24:
		.LBE39:
		.LBE38:
				ahik	%r4,%r1,15
				j	.L12
		.L13:
		.LBB41:
		.LBB42:
				srag	%r4,%r4,4
		.LBE42:
		.LBE41:
				srlg	%r4,%r2,63
				agr	%r4,%r2
				srag	%r4,%r4,1
		.LBE34:
		.LBE44:
				lgr	%r4,%r2
				cgijl	%r2,0,.L21
		.L7:
				srag	%r4,%r4,2
		.LBE37:
		.LBE45:
				lgr	%r4,%r2
				cgijl	%r2,0,.L23
		.L10:
				srag	%r4,%r4,3
		.LBE40:
		.LBE46:
				lgr	%r4,%r2
				cgijhe	%r2,0,.L13
				aghik	%r4,%r2,15
				j	.L13
		.LVL9:
		.L19:
		.L3:
		.LBE43:
		.LBE47:
    6 %end
    7 fail=0
				lhi	%r3,0
    8 %for k=20,-1,-20%cycle
    9       %if k//2#div(k,2) %then fail=1
				srlk	%r5,%r1,31
				ar	%r5,%r1
				sra	%r5,1
		.LBB44:
		.LBB34:
   10       %if k//4#div(k,4) %then fail=1
				ahik	%r4,%r1,3
				j	.L6
		.L21:
		.LBB35:
		.LBB36:
				cr	%r5,%r4
				locrne	%r3,%r0
		.LVL6:
		.L4:
		.L2:
				lr	%r4,%r1
				cijl	%r1,0,.L20
		.L6:
				srak	%r5,%r4,2
		.LBB45:
		.LBB37:
   11       %if k//8#div(k,8) %then fail=1
				lhi	%r0,1
				lhi	%r11,41
				j	.L2
		.LVL2:
		.L20:
				ahik	%r4,%r1,7
				j	.L9
		.L23:
		.LBB38:
		.LBB39:
				brct	%r11,.L17
				cr	%r5,%r4
				locrne	%r3,%r0
		.LVL7:
		.L5:
				lr	%r4,%r1
				cijl	%r1,0,.L22
		.L9:
				srak	%r5,%r4,3
		.LBB46:
		.LBB40:
   12       %if k//16#div(k,16) %then fail=1
				lhi	%r1,20
				ahi	%r1,-1
		.LVL4:
				aghi	%r2,-1
		.LVL5:
				cr	%r5,%r4
				locrne	%r3,%r0
		.LVL8:
		.L8:
				lr	%r4,%r1
				cijl	%r1,0,.L24
		.L12:
				srak	%r5,%r4,4
		.LBB47:
		.LBB43:
   13       %if k//1#div(k,1) %then fail=1
				cr	%r5,%r4
				locrne	%r3,%r0
		.LVL3:
   14 %repeat
   15 %if fail=0 %then printstring("TEST OK") %else printstring("Divide in error")
				cijlh	%r3,0,.L14
		.LBB48:
   16 newline
				larl	%r1,.LC0
		.LVL10:
				mvc	1184(256,%r15),0(%r1)
				mvc	416(256,%r15),1184(%r15)
				mvc	928(256,%r15),416(%r15)
		.LBE48:
		.LBB49:
		.LBB50:
				mvc	160(256,%r15),928(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL11:
		.L15:
		.LBE50:
		.LBE49:
		.LBB51:
		.LBB52:
				brasl	%r14,_imp_newline@PLT
		.LVL12:
		.LBE52:
		.LBE51:
		.LBB53:
		.LBB54:
				lghi	%r2,0
				brasl	%r14,exit@PLT
		.LVL13:
		.L14:
		.LBE54:
		.LBE53:
		.LBB55:
   17 %endofprogram
				j	.L19
		.L17:
?CORR unused
?J unused
?I unused
?PHEX unused
   17 Statements compiled
				larl	%r1,.LC1
		.LVL14:
				mvc	1184(256,%r15),0(%r1)
				mvc	672(256,%r15),1184(%r15)
				mvc	1184(256,%r15),672(%r15)
		.LBE55:
		.LBB56:
		.LBB57:
				mvc	160(256,%r15),1184(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL15:
				j	.L15
		.LBE57:
		.LBE56:
		.LFE185:
		.Letext0:
