      1  %CONTROL X'10000000' ; ! Decode
                        // O LINE 1  OPD_STACK = 0  file=test2/ack.imp
                        // z CONTROL 0
      2  %BEGIN
                        // O LINE 2  OPD_STACK = 0  file=test2/ack.imp
                        // H BEGIN
      3    %INTEGERFN ACKERMANN(%INTEGER M, N)
                        // O LINE 3  OPD_STACK = 0  file=test2/ack.imp
                        // $ DEF ACKERMANN (V_0074) a=24 b=1 c=16  
                        // { START (
                        // $ DEF M (V_0075) a=17 b=1 c=0  
                        // $ DEF N (V_0076) a=17 b=1 c=0  
                        // } FINISH )

00000000 <ACKERMANN.0>:
   0:	e92d4010 	push	{r4, lr}

      4  
      5     %RESULT = N+1 %IF M = 0 
                        // O LINE 5  OPD_STACK = 0  file=test2/ack.imp
                        // @ PUSH M (tag=V_0075)  OPD_STACK = 2
                        // N PUSHI #0  OPD_STACK = 3
                        // ? JUMPIF # L_0002
                        // @ PUSH N (tag=V_0076)  OPD_STACK = 3
                        // N PUSHI #1  OPD_STACK = 4
                        // + ADD
                        // V RESULT
                        // : LOCATE  (labtag=0004, lab=L_0002)
                        
   4:	e2504000 	subs	r4, r0, #0
   8:	1a000001 	bne	14 <ACKERMANN.0+0x14>
   c:	e2810001 	add	r0, r1, #1
  10:	e8bd8010 	pop	{r4, pc}

      6  
      7     %RESULT = ACKERMANN(M-1, 1) %IF N = 0
                        // O LINE 7  OPD_STACK = 0  file=test2/ack.imp
                        // @ PUSH N (tag=V_0076)  OPD_STACK = 2
                        // N PUSHI #0  OPD_STACK = 3
                        // ? JUMPIF # L_0003
                        // @ PUSH ACKERMANN (tag=V_0074)  OPD_STACK = 3
                        // @ PUSH M (tag=V_0075)  OPD_STACK = 4
                        // N PUSHI #1  OPD_STACK = 5
                        // - SUB
                        // p ASSPAR
                        // N PUSHI #1  OPD_STACK = 5
                        // p ASSPAR
                        // E CALL
                        // V RESULT
                        // : LOCATE  (labtag=0004, lab=L_0003)
  14:	e3510000 	cmp	r1, #0
  18:	1a000003 	bne	2c <ACKERMANN.0+0x2c>
  1c:	e3a01001 	mov	r1, #1
  20:	e2440001 	sub	r0, r4, #1
  24:	ebfffff5 	bl	0 <ACKERMANN.0>
  28:	e8bd8010 	pop	{r4, pc}

      8  
      9     %RESULT = ACKERMANN(M-1, ACKERMANN(M, N-1))
                        // O LINE 9  OPD_STACK = 0  file=test2/ack.imp
                        // @ PUSH ACKERMANN (tag=V_0074)  OPD_STACK = 2
                        // @ PUSH M (tag=V_0075)  OPD_STACK = 3
                        // N PUSHI #1  OPD_STACK = 4
                        // - SUB
                        // p ASSPAR
                        // @ PUSH ACKERMANN (tag=V_0074)  OPD_STACK = 4
                        // @ PUSH M (tag=V_0075)  OPD_STACK = 5
                        // p ASSPAR
                        // @ PUSH N (tag=V_0076)  OPD_STACK = 6
                        // N PUSHI #1  OPD_STACK = 7
                        // - SUB
                        // p ASSPAR
                        // E CALL
                        // p ASSPAR
                        // E CALL
                        // V RESULT
  2c:	e2411001 	sub	r1, r1, #1
  30:	e1a00004 	mov	r0, r4
  34:	ebfffff1 	bl	0 <ACKERMANN.0>
  38:	e1a01000 	mov	r1, r0
  3c:	e2440001 	sub	r0, r4, #1
  40:	ebffffee 	bl	0 <ACKERMANN.0>
  44:	e8bd8010 	pop	{r4, pc}

     10  
     11    %END
                        // O LINE 11  OPD_STACK = 0  file=test2/ack.imp
                        // ; END

00000048 <main>:
  48:	e92d4010 	push	{r4, lr}
  4c:	ebfffffe 	bl	0 <_imp_initialise>
  
     12  
     13    %INTEGER I
                        // O LINE 13  OPD_STACK = 0  file=test2/ack.imp
                        // $ DEF I (V_0075) a=17 b=1 c=0  
     14  
     15    I = ACKERMANN(3,4)
                        // O LINE 15  OPD_STACK = 0  file=test2/ack.imp
                        // @ PUSH I (tag=V_0075)  OPD_STACK = 2
                        // @ PUSH ACKERMANN (tag=V_0074)  OPD_STACK = 3
                        // N PUSHI #3  OPD_STACK = 4
                        // p ASSPAR
                        // N PUSHI #4  OPD_STACK = 5
                        // p ASSPAR
                        // E CALL
                        // S ASSVAL
                        
  50:	e3a01004 	mov	r1, #4
  54:	e3a00003 	mov	r0, #3
  58:	ebffffe8 	bl	0 <ACKERMANN.0>
  
     16  
     17  %ENDOFPROGRAM
                        // O LINE 17  OPD_STACK = 0  file=test2/ack.imp
                        // ; END
                        // ; END
  5c:	e3a00000 	mov	r0, #0
  60:	e8bd8010 	pop	{r4, pc}
