         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    %RECORD(F)%NAME B
     5    %INTEGER Q
     6    
     7    R_I='I'
 0004 C7 45 B4 49 00 00 00                  MOV DWORD PTR [%EBP-76],#73
     8    R_A(3)='x'
 000B 6A 03                                 PUSH #3
 000D 68 00 00 00 00                        PUSH COT+#0
 0012 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 0015 83 C4 08                              ADD %ESP,#8
 0018 89 C6                                 MOV %ESI,%EAX
 001A 01 EE                                 ADD %ESI,%EBP
 001C C7 46 BC 78 00 00 00                  MOV DWORD PTR [%ESI-68],#120
     9  
    10    B==R
 0023 8D 45 B4                              LEA %EAX,[%EBP-76]
 0026 89 45 B0                              MOV [%EBP-80],%EAX
    11    B_I='I'
 0029 8B 7D B0                              MOV %EDI,[%EBP-80]
 002C C7 07 49 00 00 00                     MOV DWORD PTR [%EDI],#73
    12    B_A(3)='x'
 0032 6A 03                                 PUSH #3
 0034 68 00 00 00 00                        PUSH COT+#0
 0039 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 003C 83 C4 08                              ADD %ESP,#8
 003F 8B 5D B0                              MOV %EBX,[%EBP-80]
 0042 89 C6                                 MOV %ESI,%EAX
 0044 01 DE                                 ADD %ESI,%EBX
 0046 C7 46 08 78 00 00 00                  MOV DWORD PTR [%ESI+8],#120
    13  
    14    Q=R_I
 004D 8B 45 B4                              MOV %EAX,[%EBP-76]
 0050 89 45 AC                              MOV [%EBP-84],%EAX
    15    Q=R_A(3)
 0053 6A 03                                 PUSH #3
 0055 68 00 00 00 00                        PUSH COT+#0
 005A E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 005D 83 C4 08                              ADD %ESP,#8
 0060 89 C7                                 MOV %EDI,%EAX
 0062 01 EF                                 ADD %EDI,%EBP
 0064 8B 7F BC                              MOV %EDI,[%EDI-68]
 0067 89 7D AC                              MOV [%EBP-84],%EDI
    16  
    17    Q=B_I
 006A 8B 5D B0                              MOV %EBX,[%EBP-80]
 006D 8B 03                                 MOV %EAX,[%EBX]
 006F 89 45 AC                              MOV [%EBP-84],%EAX
    18    Q=B_A(3)
 0072 6A 03                                 PUSH #3
 0074 68 00 00 00 00                        PUSH COT+#0
 0079 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 007C 83 C4 08                              ADD %ESP,#8
 007F 8B 75 B0                              MOV %ESI,[%EBP-80]
 0082 89 C7                                 MOV %EDI,%EAX
 0084 01 F7                                 ADD %EDI,%ESI
 0086 8B 7F 08                              MOV %EDI,[%EDI+8]
 0089 89 7D AC                              MOV [%EBP-84],%EDI
    19  
    20  %ENDOFPROGRAM
 008C C9                                    LEAVE
 008D C3                                    RET

    15 Statements compiled



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


