         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integerfn r
 0004 EB 00                                 JMP L1001
 0006                      L1002  EQU $
 0006 C8 00 00 02                           ENTER 0000,2
     3      %result = 1
 000A B8 01 00 00 00                        MOV %EAX,#1
 000F C9                                    LEAVE
 0010 C3                                    RET
     4    %end
 0011                      L1001  EQU $
     5    %integerfn r1(%integer p1)
     6      %result = 1
 0011                      L1003  EQU $
 0011 C8 00 00 02                           ENTER 0000,2
 0015 B8 01 00 00 00                        MOV %EAX,#1
 001A C9                                    LEAVE
 001B C3                                    RET
     7    %end
 001C                      L1001  EQU $
?P1 unused
     8    %integerfn r2(%integer p1,p2)
     9      %result = 1
 001C                      L1004  EQU $
 001C C8 00 00 02                           ENTER 0000,2
 0020 B8 01 00 00 00                        MOV %EAX,#1
 0025 C9                                    LEAVE
 0026 C3                                    RET
    10    %end
 0027                      L1001  EQU $
?P2 unused
?P1 unused
    11    %integerfn r3(%integer p1,p2,p3)
    12      %result = 1
 0027                      L1005  EQU $
 0027 C8 00 00 02                           ENTER 0000,2
 002B B8 01 00 00 00                        MOV %EAX,#1
 0030 C9                                    LEAVE
 0031 C3                                    RET
    13    %end
 0032                      L1001  EQU $
?P3 unused
?P2 unused
?P1 unused
    14    %integer i
    15    i = r
 0032 E8 00 00                              CALL 'R' (INTERNAL L1002 )
 0035 89 45 F8                              MOV [%EBP-8],%EAX
    16    i = r1(123)
 0038 6A 7B                                 PUSH #123
 003A E8 00 00                              CALL 'R1' (INTERNAL L1003 )
 003D 83 C4 04                              ADD %ESP,#4
 0040 89 45 F8                              MOV [%EBP-8],%EAX
    17    i = r2(23,34)
 0043 6A 17                                 PUSH #23
 0045 6A 22                                 PUSH #34
 0047 E8 00 00                              CALL 'R2' (INTERNAL L1004 )
 004A 83 C4 08                              ADD %ESP,#8
 004D 89 45 F8                              MOV [%EBP-8],%EAX
    18    i = r3(34,45,56)
 0050 6A 22                                 PUSH #34
 0052 6A 2D                                 PUSH #45
 0054 6A 38                                 PUSH #56
 0056 E8 00 00                              CALL 'R3' (INTERNAL L1005 )
 0059 83 C4 0C                              ADD %ESP,#12
 005C 89 45 F8                              MOV [%EBP-8],%EAX
    19  %endofprogram
 005F C9                                    LEAVE
 0060 C3                                    RET

    19 Statements compiled



 ELF object file generated from IMP source file: '/home/gtoal/src/compilers101/new-parser/imps/tests/test48.imp'
 +----------+---------------------+---------+---------+---------+------------+
 | Sections |       Symbols       | Code    | Data    | Diag    | Total size |
 +----------+----------+----------+---------+---------+---------+------------+
 |  (count) | Internal | External | (bytes) | (bytes) | (bytes) | (bytes)    |
 +----------+----------+----------+---------+---------+---------+------------+
 |       11 |        8 |        6 |     105 |       0 |     160 |        265 |
 +----------+----------+----------+---------+---------+---------+------------+


