         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integerarray    fred(2:7)
 0004 C7 45 EC 01 00 00 00                  MOV DWORD PTR [%EBP-20],#1
 000B C7 45 F0 02 00 00 00                  MOV DWORD PTR [%EBP-16],#2
 0012 C7 45 F4 07 00 00 00                  MOV DWORD PTR [%EBP-12],#7
 0019 C7 45 F8 83 00 00 00                  MOV DWORD PTR [%EBP-8],#131
 0020 8D 45 EC                              LEA %EAX,[%EBP-20]
 0023 50                                    PUSH %EAX
 0024 E8 0A 00                              CALL '_IMPADEF' (EXTERN 10)
 0027 83 C4 04                              ADD %ESP,#4
 002A 8D 4D EC                              LEA %ECX,[%EBP-20]
 002D 89 E3                                 MOV %EBX,%ESP
 002F 29 D3                                 SUB %EBX,%EDX
 0031 89 5D E4                              MOV [%EBP-28],%EBX
 0034 89 4D E8                              MOV [%EBP-24],%ECX
 0037 01 C3                                 ADD %EBX,%EAX
 0039 89 DC                                 MOV %ESP,%EBX
     3    %owninteger low=3, high=8
     4    %integerarray    jim(low:high)
 003B C7 45 D4 01 00 00 00                  MOV DWORD PTR [%EBP-44],#1
 0042 A1 00 00 00 00                        MOV %EAX,[DATA+0000]
 0047 89 45 D8                              MOV [%EBP-40],%EAX
 004A 8B 0D 04 00 00 00                     MOV %ECX,[DATA+0004]
 0050 89 4D DC                              MOV [%EBP-36],%ECX
 0053 C7 45 E0 83 00 00 00                  MOV DWORD PTR [%EBP-32],#131
 005A 8D 45 D4                              LEA %EAX,[%EBP-44]
 005D 50                                    PUSH %EAX
 005E E8 0A 00                              CALL '_IMPADEF' (EXTERN 10)
 0061 83 C4 04                              ADD %ESP,#4
 0064 8D 4D D4                              LEA %ECX,[%EBP-44]
 0067 89 E3                                 MOV %EBX,%ESP
 0069 29 D3                                 SUB %EBX,%EDX
 006B 89 5D CC                              MOV [%EBP-52],%EBX
 006E 89 4D D0                              MOV [%EBP-48],%ECX
 0071 01 C3                                 ADD %EBX,%EAX
 0073 89 DC                                 MOV %ESP,%EBX
     5  
     6    fred(2) = 42
 0075 6A 02                                 PUSH #2
 0077 FF 75 E8                              PUSH DWORD PTR [%EBP-24]
 007A E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 007D 83 C4 08                              ADD %ESP,#8
 0080 89 C6                                 MOV %ESI,%EAX
 0082 03 75 E4                              ADD %ESI,[%EBP-28]
 0085 C7 06 2A 00 00 00                     MOV DWORD PTR [%ESI],#42
     7  
     8    jim(4) = 99
 008B 6A 04                                 PUSH #4
 008D FF 75 D0                              PUSH DWORD PTR [%EBP-48]
 0090 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 0093 83 C4 08                              ADD %ESP,#8
 0096 89 C7                                 MOV %EDI,%EAX
 0098 03 7D CC                              ADD %EDI,[%EBP-52]
 009B C7 07 63 00 00 00                     MOV DWORD PTR [%EDI],#99
     9  
    10  %endofprogram
 00A1 C9                                    LEAVE
 00A2 C3                                    RET

     7 Statements compiled



 ELF object file generated from IMP source file: '/home/gtoal/src/compilers101/new-parser/imps/tests/test133.imp'
 +----------+---------------------+---------+---------+---------+------------+
 | Sections |       Symbols       | Code    | Data    | Diag    | Total size |
 +----------+----------+----------+---------+---------+---------+------------+
 |  (count) | Internal | External | (bytes) | (bytes) | (bytes) | (bytes)    |
 +----------+----------+----------+---------+---------+---------+------------+
 |       12 |        5 |        8 |     171 |       8 |      32 |        211 |
 +----------+----------+----------+---------+---------+---------+------------+


