         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %ownshortintegerarray  p(0:255) = 42, 24, 99(252), 16_ab, 16_cd
     3    %ownshortintegerarray  q(-128:127) = 42, 24, 99(252), 16_ab, 16_cd
     4    %ownshortintegerarray  r(1000:1255) = 42, 24, 99(*)
     5    %integer i
     6    i = p(100)
 0004 6A 64                                 PUSH #100
 0006 68 00 00 00 00                        PUSH COT+#0
 000B E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 000E 83 C4 08                              ADD %ESP,#8
 0011 89 C6                                 MOV %ESI,%EAX
 0013 0F BF 86 00 00 00 00                  MOVSX %EAX,[%ESI+DATA]
 001A 89 45 F8                              MOV [%EBP-8],%EAX
     7    i = q(-28)
 001D 6A E4                                 PUSH #-28
 001F 68 10 00 00 00                        PUSH COT+#16
 0024 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 0027 83 C4 08                              ADD %ESP,#8
 002A 89 C7                                 MOV %EDI,%EAX
 002C 0F BF 87 00 03 00 00                  MOVSX %EAX,[%EDI+DATA+768]
 0033 89 45 F8                              MOV [%EBP-8],%EAX
     8    i = r(1100)
 0036 68 4C 04 00 00                        PUSH #1100
 003B 68 20 00 00 00                        PUSH COT+#32
 0040 E8 09 00                              CALL '_IMPAREF' (EXTERN 9)
 0043 83 C4 08                              ADD %ESP,#8
 0046 89 C3                                 MOV %EBX,%EAX
 0048 0F BF 9B 30 FC FF FF                  MOVSX %EBX,[%EBX+DATA-976]
 004F 89 5D F8                              MOV [%EBP-8],%EBX
     9  %endofprogram
 0052 C9                                    LEAVE
 0053 C3                                    RET
