         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %BEGIN
 0000 C8 00 00 01                           ENTER 0000,1
     2  %RECORDFORMAT F(%INTEGER I,J,K,%INTEGERARRAY A,B,C(1:5))
     3  %RECORD(F) R
     4  %INTEGERARRAYNAME B
     5  %INTEGER I
     6        R_I='I'
 0004 C7 45 B4 49 00 00 00                  MOV DWORD PTR [%EBP-76],#73
     7        R_J='J'
 000B C7 45 B8 4A 00 00 00                  MOV DWORD PTR [%EBP-72],#74
     8        %CYCLE I=1,1,5
 0012 C7 45 A8 00 00 00 00                  MOV DWORD PTR [%EBP-88],#0
 0019                      L1001  EQU $
 0019 8B 45 A8                              MOV %EAX,[%EBP-88]
 001C 3D 05 00 00 00                        CMP %EAX,#5
 0021 74 00                                 JE L1002
 0023 40                                    INC %EAX
 0024 89 45 A8                              MOV [%EBP-88],%EAX
     9        R_A(I)=I
 0027 FF 75 A8                              PUSH DWORD PTR [%EBP-88]
 002A 68 00 00 00 00                        PUSH COT+#0
 002F E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 0032 83 C4 08                              ADD %ESP,#8
 0035 89 C6                                 MOV %ESI,%EAX
 0037 01 EE                                 ADD %ESI,%EBP
 0039 8B 45 A8                              MOV %EAX,[%EBP-88]
 003C 89 46 BC                              MOV [%ESI-68],%EAX
    10        %REPEAT
 003F EB 00                                 JMP L1001
 0041                      L1002  EQU $
    11        R_K=255
 0041 C7 45 BC FF 00 00 00                  MOV DWORD PTR [%EBP-68],#255
    12        B==R_A
 0048 8D 45 BC                              LEA %EAX,[%EBP-68]
 004B B9 00 00 00 00                        MOV %ECX,COT+#0
 0050 89 4D B0                              MOV [%EBP-80],%ECX
 0053 89 45 AC                              MOV [%EBP-84],%EAX
    13        %CYCLE I=1,1,5
 0056 C7 45 A8 00 00 00 00                  MOV DWORD PTR [%EBP-88],#0
 005D                      L1003  EQU $
 005D 8B 45 A8                              MOV %EAX,[%EBP-88]
 0060 3D 05 00 00 00                        CMP %EAX,#5
 0065 74 00                                 JE L1004
 0067 40                                    INC %EAX
 0068 89 45 A8                              MOV [%EBP-88],%EAX
    14           WRITE(B(I),5)
 006B FF 75 A8                              PUSH DWORD PTR [%EBP-88]
 006E FF 75 B0                              PUSH DWORD PTR [%EBP-80]
 0071 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 0074 83 C4 08                              ADD %ESP,#8
 0077 89 C7                                 MOV %EDI,%EAX
 0079 03 7D AC                              ADD %EDI,[%EBP-84]
 007C FF 37                                 PUSH DWORD PTR [%EDI]
 007E 6A 05                                 PUSH #5
 0080 E8 40 00                              CALL 'WRITE' (EXTERN 64)
 0083 83 C4 08                              ADD %ESP,#8
    15        %REPEAT
 0086 EB 00                                 JMP L1003
 0088                      L1004  EQU $
    16  %ENDOFPROGRAM
 0088 C9                                    LEAVE
 0089 C3                                    RET

    16 Statements compiled



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


