         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integer %array scurl, ecurl(1:20), bigger, bigger2(0:50)
 0004 C7 45 EC 01 00 00 00                  MOV DWORD PTR [%EBP-20],#1
 000B C7 45 F0 01 00 00 00                  MOV DWORD PTR [%EBP-16],#1
 0012 C7 45 F4 14 00 00 00                  MOV DWORD PTR [%EBP-12],#20
 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 29 D3                                 SUB %EBX,%EDX
 003B 89 5D DC                              MOV [%EBP-36],%EBX
 003E 89 4D E0                              MOV [%EBP-32],%ECX
 0041 01 C3                                 ADD %EBX,%EAX
 0043 89 DC                                 MOV %ESP,%EBX
 0045 C7 45 CC 01 00 00 00                  MOV DWORD PTR [%EBP-52],#1
 004C C7 45 D0 00 00 00 00                  MOV DWORD PTR [%EBP-48],#0
 0053 C7 45 D4 32 00 00 00                  MOV DWORD PTR [%EBP-44],#50
 005A C7 45 D8 83 00 00 00                  MOV DWORD PTR [%EBP-40],#131
 0061 8D 45 CC                              LEA %EAX,[%EBP-52]
 0064 50                                    PUSH %EAX
 0065 E8 0A 00                              CALL '_IMPADEF' (EXTERN 10)
 0068 83 C4 04                              ADD %ESP,#4
 006B 8D 4D CC                              LEA %ECX,[%EBP-52]
 006E 89 E3                                 MOV %EBX,%ESP
 0070 29 D3                                 SUB %EBX,%EDX
 0072 89 5D C4                              MOV [%EBP-60],%EBX
 0075 89 4D C8                              MOV [%EBP-56],%ECX
 0078 01 C3                                 ADD %EBX,%EAX
 007A 29 D3                                 SUB %EBX,%EDX
 007C 89 5D BC                              MOV [%EBP-68],%EBX
 007F 89 4D C0                              MOV [%EBP-64],%ECX
 0082 01 C3                                 ADD %EBX,%EAX
 0084 89 DC                                 MOV %ESP,%EBX
     3    scurl(1) = 1
 0086 6A 01                                 PUSH #1
 0088 FF 75 E8                              PUSH DWORD PTR [%EBP-24]
 008B E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 008E 83 C4 08                              ADD %ESP,#8
 0091 89 C6                                 MOV %ESI,%EAX
 0093 03 75 E4                              ADD %ESI,[%EBP-28]
 0096 C7 06 01 00 00 00                     MOV DWORD PTR [%ESI],#1
     4    ecurl(1) = 1
 009C 6A 01                                 PUSH #1
 009E FF 75 E0                              PUSH DWORD PTR [%EBP-32]
 00A1 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 00A4 83 C4 08                              ADD %ESP,#8
 00A7 89 C7                                 MOV %EDI,%EAX
 00A9 03 7D DC                              ADD %EDI,[%EBP-36]
 00AC C7 07 01 00 00 00                     MOV DWORD PTR [%EDI],#1
     5    bigger(0) = 1
 00B2 6A 00                                 PUSH #0
 00B4 FF 75 C8                              PUSH DWORD PTR [%EBP-56]
 00B7 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 00BA 83 C4 08                              ADD %ESP,#8
 00BD 89 C3                                 MOV %EBX,%EAX
 00BF 03 5D C4                              ADD %EBX,[%EBP-60]
 00C2 C7 03 01 00 00 00                     MOV DWORD PTR [%EBX],#1
     6    bigger2(0) = 1
 00C8 6A 00                                 PUSH #0
 00CA FF 75 C0                              PUSH DWORD PTR [%EBP-64]
 00CD E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 00D0 83 C4 08                              ADD %ESP,#8
 00D3 89 C6                                 MOV %ESI,%EAX
 00D5 03 75 BC                              ADD %ESI,[%EBP-68]
 00D8 C7 06 01 00 00 00                     MOV DWORD PTR [%ESI],#1
     7  %endofprogram
 00DE C9                                    LEAVE
 00DF C3                                    RET

     7 Statements compiled



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


