         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integer i,j,k
     3    %integername m,n,p
     4    m == i
 0004 8D 45 F8                              LEA %EAX,[%EBP-8]
 0007 89 45 EC                              MOV [%EBP-20],%EAX
     5    n == j
 000A 8D 45 F4                              LEA %EAX,[%EBP-12]
 000D 89 45 E8                              MOV [%EBP-24],%EAX
     6    p == n
 0010 8B 45 E8                              MOV %EAX,[%EBP-24]
 0013 89 45 E4                              MOV [%EBP-28],%EAX
     7    
     8    i = 2
 0016 C7 45 F8 02 00 00 00                  MOV DWORD PTR [%EBP-8],#2
     9    j = 3
 001D C7 45 F4 03 00 00 00                  MOV DWORD PTR [%EBP-12],#3
    10    k = 4
 0024 C7 45 F0 04 00 00 00                  MOV DWORD PTR [%EBP-16],#4
    11    
    12    m = 5
 002B 8B 75 EC                              MOV %ESI,[%EBP-20]
 002E C7 06 05 00 00 00                     MOV DWORD PTR [%ESI],#5
    13    n = 6
 0034 8B 7D E8                              MOV %EDI,[%EBP-24]
 0037 C7 07 06 00 00 00                     MOV DWORD PTR [%EDI],#6
    14    p = 7
 003D 8B 5D E4                              MOV %EBX,[%EBP-28]
 0040 C7 03 07 00 00 00                     MOV DWORD PTR [%EBX],#7
    15    
    16    i = i + 4
 0046 83 45 F8 04                           ADD DWORD PTR [%EBP-8],#4
    17    i = 4 + i
 004A 8B 45 F8                              MOV %EAX,[%EBP-8]
 004D 05 04 00 00 00                        ADD %EAX,#4
 0052 89 45 F8                              MOV [%EBP-8],%EAX
    18    i = j + k + m + n
 0055 8B 45 F4                              MOV %EAX,[%EBP-12]
 0058 03 45 F0                              ADD %EAX,[%EBP-16]
 005B 8B 75 EC                              MOV %ESI,[%EBP-20]
 005E 03 06                                 ADD %EAX,[%ESI]
 0060 8B 7D E8                              MOV %EDI,[%EBP-24]
 0063 03 07                                 ADD %EAX,[%EDI]
 0065 89 45 F8                              MOV [%EBP-8],%EAX
    19    i = j + 2 + m + 3
 0068 8B 45 F4                              MOV %EAX,[%EBP-12]
 006B 05 02 00 00 00                        ADD %EAX,#2
 0070 8B 5D EC                              MOV %EBX,[%EBP-20]
 0073 03 03                                 ADD %EAX,[%EBX]
 0075 05 03 00 00 00                        ADD %EAX,#3
 007A 89 45 F8                              MOV [%EBP-8],%EAX
    20    i = 2 + j + 3 + m
 007D 8B 45 F4                              MOV %EAX,[%EBP-12]
 0080 05 02 00 00 00                        ADD %EAX,#2
 0085 05 03 00 00 00                        ADD %EAX,#3
 008A 8B 75 EC                              MOV %ESI,[%EBP-20]
 008D 03 06                                 ADD %EAX,[%ESI]
 008F 89 45 F8                              MOV [%EBP-8],%EAX
    21  
    22    p = i + 4
 0092 8B 45 F8                              MOV %EAX,[%EBP-8]
 0095 05 04 00 00 00                        ADD %EAX,#4
 009A 8B 7D E4                              MOV %EDI,[%EBP-28]
 009D 89 07                                 MOV [%EDI],%EAX
    23    p = 4 + i
 009F 8B 45 F8                              MOV %EAX,[%EBP-8]
 00A2 05 04 00 00 00                        ADD %EAX,#4
 00A7 8B 5D E4                              MOV %EBX,[%EBP-28]
 00AA 89 03                                 MOV [%EBX],%EAX
    24    p = j + k + m + n
 00AC 8B 45 F4                              MOV %EAX,[%EBP-12]
 00AF 03 45 F0                              ADD %EAX,[%EBP-16]
 00B2 8B 75 EC                              MOV %ESI,[%EBP-20]
 00B5 03 06                                 ADD %EAX,[%ESI]
 00B7 8B 7D E8                              MOV %EDI,[%EBP-24]
 00BA 03 07                                 ADD %EAX,[%EDI]
 00BC 8B 5D E4                              MOV %EBX,[%EBP-28]
 00BF 89 03                                 MOV [%EBX],%EAX
    25    p = j + 2 + m + 3
 00C1 8B 45 F4                              MOV %EAX,[%EBP-12]
 00C4 05 02 00 00 00                        ADD %EAX,#2
 00C9 8B 75 EC                              MOV %ESI,[%EBP-20]
 00CC 03 06                                 ADD %EAX,[%ESI]
 00CE 05 03 00 00 00                        ADD %EAX,#3
 00D3 8B 7D E4                              MOV %EDI,[%EBP-28]
 00D6 89 07                                 MOV [%EDI],%EAX
    26    p = 2 + j + 3 + m
 00D8 8B 45 F4                              MOV %EAX,[%EBP-12]
 00DB 05 02 00 00 00                        ADD %EAX,#2
 00E0 05 03 00 00 00                        ADD %EAX,#3
 00E5 8B 5D EC                              MOV %EBX,[%EBP-20]
 00E8 03 03                                 ADD %EAX,[%EBX]
 00EA 8B 75 E4                              MOV %ESI,[%EBP-28]
 00ED 89 06                                 MOV [%ESI],%EAX
    27  %endofprogram
 00EF C9                                    LEAVE
 00F0 C3                                    RET

    23 Statements compiled



 ELF object file generated from IMP source file: '/home/gtoal/src/compilers101/new-parser/imps/tests/test34.imp'
 +----------+---------------------+---------+---------+---------+------------+
 | Sections |       Symbols       | Code    | Data    | Diag    | Total size |
 +----------+----------+----------+---------+---------+---------+------------+
 |  (count) | Internal | External | (bytes) | (bytes) | (bytes) | (bytes)    |
 +----------+----------+----------+---------+---------+---------+------------+
 |       11 |        4 |        6 |     241 |       0 |      32 |        273 |
 +----------+----------+----------+---------+---------+---------+------------+


