         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    ! bounds need to apply to all four arrays here
     3    %integerarray  p,q,r,s(0:255, 0:255)
 0004 C7 45 E4 02 00 00 00                  MOV DWORD PTR [%EBP-28],#2
 000B C7 45 E8 00 00 00 00                  MOV DWORD PTR [%EBP-24],#0
 0012 C7 45 EC FF 00 00 00                  MOV DWORD PTR [%EBP-20],#255
 0019 C7 45 F0 00 00 00 00                  MOV DWORD PTR [%EBP-16],#0
 0020 C7 45 F4 FF 00 00 00                  MOV DWORD PTR [%EBP-12],#255
 0027 C7 45 F8 83 00 00 00                  MOV DWORD PTR [%EBP-8],#131
 002E 8D 45 E4                              LEA %EAX,[%EBP-28]
 0031 50                                    PUSH %EAX
 0032 E8 0A 00                              CALL '_IMPADEF' (EXTERN 10)
 0035 83 C4 04                              ADD %ESP,#4
 0038 8D 4D E4                              LEA %ECX,[%EBP-28]
 003B 89 E3                                 MOV %EBX,%ESP
 003D 29 D3                                 SUB %EBX,%EDX
 003F 89 5D DC                              MOV [%EBP-36],%EBX
 0042 89 4D E0                              MOV [%EBP-32],%ECX
 0045 01 C3                                 ADD %EBX,%EAX
 0047 29 D3                                 SUB %EBX,%EDX
 0049 89 5D D4                              MOV [%EBP-44],%EBX
 004C 89 4D D8                              MOV [%EBP-40],%ECX
 004F 01 C3                                 ADD %EBX,%EAX
 0051 29 D3                                 SUB %EBX,%EDX
 0053 89 5D CC                              MOV [%EBP-52],%EBX
 0056 89 4D D0                              MOV [%EBP-48],%ECX
 0059 01 C3                                 ADD %EBX,%EAX
 005B 29 D3                                 SUB %EBX,%EDX
 005D 89 5D C4                              MOV [%EBP-60],%EBX
 0060 89 4D C8                              MOV [%EBP-56],%ECX
 0063 01 C3                                 ADD %EBX,%EAX
 0065 89 DC                                 MOV %ESP,%EBX
     4    %integer i
     5    p(100, 200) = 42
 0067 6A 64                                 PUSH #100
 0069 68 C8 00 00 00                        PUSH #200
 006E FF 75 E0                              PUSH DWORD PTR [%EBP-32]
 0071 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 0074 83 C4 0C                              ADD %ESP,#12
 0077 89 C6                                 MOV %ESI,%EAX
 0079 03 75 DC                              ADD %ESI,[%EBP-36]
 007C C7 06 2A 00 00 00                     MOV DWORD PTR [%ESI],#42
     6    q(100, 200) = 42
 0082 6A 64                                 PUSH #100
 0084 68 C8 00 00 00                        PUSH #200
 0089 FF 75 D8                              PUSH DWORD PTR [%EBP-40]
 008C E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 008F 83 C4 0C                              ADD %ESP,#12
 0092 89 C7                                 MOV %EDI,%EAX
 0094 03 7D D4                              ADD %EDI,[%EBP-44]
 0097 C7 07 2A 00 00 00                     MOV DWORD PTR [%EDI],#42
     7    r(100, 200) = 42
 009D 6A 64                                 PUSH #100
 009F 68 C8 00 00 00                        PUSH #200
 00A4 FF 75 D0                              PUSH DWORD PTR [%EBP-48]
 00A7 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 00AA 83 C4 0C                              ADD %ESP,#12
 00AD 89 C3                                 MOV %EBX,%EAX
 00AF 03 5D CC                              ADD %EBX,[%EBP-52]
 00B2 C7 03 2A 00 00 00                     MOV DWORD PTR [%EBX],#42
     8    s(100, 200) = 42
 00B8 6A 64                                 PUSH #100
 00BA 68 C8 00 00 00                        PUSH #200
 00BF FF 75 C8                              PUSH DWORD PTR [%EBP-56]
 00C2 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 00C5 83 C4 0C                              ADD %ESP,#12
 00C8 89 C6                                 MOV %ESI,%EAX
 00CA 03 75 C4                              ADD %ESI,[%EBP-60]
 00CD C7 06 2A 00 00 00                     MOV DWORD PTR [%ESI],#42
     9  %endofprogram
 00D3 C9                                    LEAVE
 00D4 C3                                    RET
