         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %recordformat testfm(%integer a,b,c,d)
     3    %record (testfm) %array rec(0:10)
 0004 C7 45 EC 01 00 00 00                  MOV DWORD PTR [%EBP-20],#1
 000B C7 45 F0 00 00 00 00                  MOV DWORD PTR [%EBP-16],#0
 0012 C7 45 F4 0A 00 00 00                  MOV DWORD PTR [%EBP-12],#10
 0019 C7 45 F8 09 02 00 00                  MOV DWORD PTR [%EBP-8],#521
 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
     4    %integer i, j
     5  !  rec(i)_c = 2
     6    rec(-i)_c = 2
 003B 8B 45 E0                              MOV %EAX,[%EBP-32]
 003E F7 D8                                 NEG %EAX
 0040 50                                    PUSH %EAX
 0041 FF 75 E8                              PUSH DWORD PTR [%EBP-24]
 0044 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 0047 83 C4 08                              ADD %ESP,#8
 004A 89 C6                                 MOV %ESI,%EAX
 004C 03 75 E4                              ADD %ESI,[%EBP-28]
 004F C7 46 08 02 00 00 00                  MOV DWORD PTR [%ESI+8],#2
     7  %endofprogram
 0056 C9                                    LEAVE
 0057 C3                                    RET
