         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integer i, j, k, l;
     3    %integername p, q
     4    
     5    i = 20; j = 25; k = 21; l = 27;
 0004 C7 45 F8 14 00 00 00                  MOV DWORD PTR [%EBP-8],#20
 000B C7 45 F4 19 00 00 00                  MOV DWORD PTR [%EBP-12],#25
 0012 C7 45 F0 15 00 00 00                  MOV DWORD PTR [%EBP-16],#21
 0019 C7 45 EC 1B 00 00 00                  MOV DWORD PTR [%EBP-20],#27
     6    p == j; q == l;
 0020 8D 45 F4                              LEA %EAX,[%EBP-12]
 0023 89 45 E8                              MOV [%EBP-24],%EAX
 0026 8D 45 EC                              LEA %EAX,[%EBP-20]
 0029 89 45 E4                              MOV [%EBP-28],%EAX
     7    %cycle
 002C                      L1001  EQU $
     8      i = j; p = q
 002C 8B 45 F4                              MOV %EAX,[%EBP-12]
 002F 89 45 F8                              MOV [%EBP-8],%EAX
 0032 8B 75 E8                              MOV %ESI,[%EBP-24]
 0035 8B 7D E4                              MOV %EDI,[%EBP-28]
 0038 8B 07                                 MOV %EAX,[%EDI]
 003A 89 06                                 MOV [%ESI],%EAX
     9    %repeat %until k=3 %or (i=p %and l=1)
 003C 8B 45 F0                              MOV %EAX,[%EBP-16]
 003F 3D 03 00 00 00                        CMP %EAX,#3
 0044 74 00                                 JE L1002
 0046 8B 45 F8                              MOV %EAX,[%EBP-8]
 0049 8B 5D E8                              MOV %EBX,[%EBP-24]
 004C 3B 03                                 CMP %EAX,[%EBX]
 004E 75 00                                 JNE L1003
 0050 8B 45 EC                              MOV %EAX,[%EBP-20]
 0053 3D 01 00 00 00                        CMP %EAX,#1
 0058 74 00                                 JE L1002
 005A                      L1003  EQU $
 005A EB 00                                 JMP L1001
 005C                      L1002  EQU $
    10  %endofprogram
 005C C9                                    LEAVE
 005D C3                                    RET

    14 Statements compiled



 ELF object file generated from IMP source file: '/home/gtoal/src/compilers101/new-parser/imps/tests/test101.imp'
 +----------+---------------------+---------+---------+---------+------------+
 | Sections |       Symbols       | Code    | Data    | Diag    | Total size |
 +----------+----------+----------+---------+---------+---------+------------+
 |  (count) | Internal | External | (bytes) | (bytes) | (bytes) | (bytes)    |
 +----------+----------+----------+---------+---------+---------+------------+
 |       11 |        4 |        6 |      94 |       0 |      32 |        126 |
 +----------+----------+----------+---------+---------+---------+------------+


