         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integer h, i, j, k
     3    i = 1; j = 2; k = 3
 0004 C7 45 F4 01 00 00 00                  MOV DWORD PTR [%EBP-12],#1
 000B C7 45 F0 02 00 00 00                  MOV DWORD PTR [%EBP-16],#2
 0012 C7 45 EC 03 00 00 00                  MOV DWORD PTR [%EBP-20],#3
     4    %cycle h = i,j,k
 0019 8B 45 EC                              MOV %EAX,[%EBP-20]
 001C 89 45 E8                              MOV [%EBP-24],%EAX
 001F 8B 45 F0                              MOV %EAX,[%EBP-16]
 0022 89 45 E4                              MOV [%EBP-28],%EAX
 0025 8B 45 F4                              MOV %EAX,[%EBP-12]
 0028 2B 45 E4                              SUB %EAX,[%EBP-28]
 002B 89 45 F8                              MOV [%EBP-8],%EAX
 002E                      L1001  EQU $
 002E 8B 45 F8                              MOV %EAX,[%EBP-8]
 0031 3B 45 E8                              CMP %EAX,[%EBP-24]
 0034 74 00                                 JE L1002
 0036 03 45 E4                              ADD %EAX,[%EBP-28]
 0039 89 45 F8                              MOV [%EBP-8],%EAX
     5    %repeat
 003C EB 00                                 JMP L1001
 003E                      L1002  EQU $
     6    %cycle h = i,1,k
 003E 8B 45 EC                              MOV %EAX,[%EBP-20]
 0041 89 45 E0                              MOV [%EBP-32],%EAX
 0044 8B 45 F4                              MOV %EAX,[%EBP-12]
 0047 48                                    DEC %EAX
 0048 89 45 F8                              MOV [%EBP-8],%EAX
 004B                      L1003  EQU $
 004B 8B 45 F8                              MOV %EAX,[%EBP-8]
 004E 3B 45 E0                              CMP %EAX,[%EBP-32]
 0051 74 00                                 JE L1004
 0053 40                                    INC %EAX
 0054 89 45 F8                              MOV [%EBP-8],%EAX
     7    %repeat
 0057 EB 00                                 JMP L1003
 0059                      L1004  EQU $
     8    %cycle h = i,-1,k
 0059 8B 45 EC                              MOV %EAX,[%EBP-20]
 005C 89 45 DC                              MOV [%EBP-36],%EAX
 005F 8B 45 F4                              MOV %EAX,[%EBP-12]
 0062 40                                    INC %EAX
 0063 89 45 F8                              MOV [%EBP-8],%EAX
 0066                      L1005  EQU $
 0066 8B 45 F8                              MOV %EAX,[%EBP-8]
 0069 3B 45 DC                              CMP %EAX,[%EBP-36]
 006C 74 00                                 JE L1006
 006E 48                                    DEC %EAX
 006F 89 45 F8                              MOV [%EBP-8],%EAX
     9    %repeat
 0072 EB 00                                 JMP L1005
 0074                      L1006  EQU $
    10    %cycle h = 1,1,3
 0074 C7 45 F8 00 00 00 00                  MOV DWORD PTR [%EBP-8],#0
 007B                      L1007  EQU $
 007B 8B 45 F8                              MOV %EAX,[%EBP-8]
 007E 3D 03 00 00 00                        CMP %EAX,#3
 0083 74 00                                 JE L1008
 0085 40                                    INC %EAX
 0086 89 45 F8                              MOV [%EBP-8],%EAX
    11    %repeat
 0089 EB 00                                 JMP L1007
 008B                      L1008  EQU $
    12    %cycle h = 3,-1,1
 008B C7 45 F8 04 00 00 00                  MOV DWORD PTR [%EBP-8],#4
 0092                      L1009  EQU $
 0092 8B 45 F8                              MOV %EAX,[%EBP-8]
 0095 3D 01 00 00 00                        CMP %EAX,#1
 009A 74 00                                 JE L1010
 009C 48                                    DEC %EAX
 009D 89 45 F8                              MOV [%EBP-8],%EAX
    13    %repeat
 00A0 EB 00                                 JMP L1009
 00A2                      L1010  EQU $
    14    %cycle h = 1,1,k
 00A2 8B 45 EC                              MOV %EAX,[%EBP-20]
 00A5 89 45 D8                              MOV [%EBP-40],%EAX
 00A8 C7 45 F8 00 00 00 00                  MOV DWORD PTR [%EBP-8],#0
 00AF                      L1011  EQU $
 00AF 8B 45 F8                              MOV %EAX,[%EBP-8]
 00B2 3B 45 D8                              CMP %EAX,[%EBP-40]
 00B5 74 00                                 JE L1012
 00B7 40                                    INC %EAX
 00B8 89 45 F8                              MOV [%EBP-8],%EAX
    15    %repeat
 00BB EB 00                                 JMP L1011
 00BD                      L1012  EQU $
    16    %cycle h = k,-1,1
 00BD 8B 45 EC                              MOV %EAX,[%EBP-20]
 00C0 40                                    INC %EAX
 00C1 89 45 F8                              MOV [%EBP-8],%EAX
 00C4                      L1013  EQU $
 00C4 8B 45 F8                              MOV %EAX,[%EBP-8]
 00C7 3D 01 00 00 00                        CMP %EAX,#1
 00CC 74 00                                 JE L1014
 00CE 48                                    DEC %EAX
 00CF 89 45 F8                              MOV [%EBP-8],%EAX
    17    %repeat
 00D2 EB 00                                 JMP L1013
 00D4                      L1014  EQU $
    18    %cycle h = i,1,3
 00D4 8B 45 F4                              MOV %EAX,[%EBP-12]
 00D7 48                                    DEC %EAX
 00D8 89 45 F8                              MOV [%EBP-8],%EAX
 00DB                      L1015  EQU $
 00DB 8B 45 F8                              MOV %EAX,[%EBP-8]
 00DE 3D 03 00 00 00                        CMP %EAX,#3
 00E3 74 00                                 JE L1016
 00E5 40                                    INC %EAX
 00E6 89 45 F8                              MOV [%EBP-8],%EAX
    19    %repeat
 00E9 EB 00                                 JMP L1015
 00EB                      L1016  EQU $
    20    %cycle h = i,-1,1
 00EB 8B 45 F4                              MOV %EAX,[%EBP-12]
 00EE 40                                    INC %EAX
 00EF 89 45 F8                              MOV [%EBP-8],%EAX
 00F2                      L1017  EQU $
 00F2 8B 45 F8                              MOV %EAX,[%EBP-8]
 00F5 3D 01 00 00 00                        CMP %EAX,#1
 00FA 74 00                                 JE L1018
 00FC 48                                    DEC %EAX
 00FD 89 45 F8                              MOV [%EBP-8],%EAX
    21    %repeat
 0100 EB 00                                 JMP L1017
 0102                      L1018  EQU $
    22    %cycle h = 1,i,3
 0102 8B 45 F4                              MOV %EAX,[%EBP-12]
 0105 89 45 D4                              MOV [%EBP-44],%EAX
 0108 B8 01 00 00 00                        MOV %EAX,#1
 010D 2B 45 D4                              SUB %EAX,[%EBP-44]
 0110 89 45 F8                              MOV [%EBP-8],%EAX
 0113                      L1019  EQU $
 0113 8B 45 F8                              MOV %EAX,[%EBP-8]
 0116 3D 03 00 00 00                        CMP %EAX,#3
 011B 74 00                                 JE L1020
 011D 03 45 D4                              ADD %EAX,[%EBP-44]
 0120 89 45 F8                              MOV [%EBP-8],%EAX
    23    %repeat
 0123 EB 00                                 JMP L1019
 0125                      L1020  EQU $
    24    %cycle h = 1,i,k
 0125 8B 45 EC                              MOV %EAX,[%EBP-20]
 0128 89 45 D0                              MOV [%EBP-48],%EAX
 012B 8B 45 F4                              MOV %EAX,[%EBP-12]
 012E 89 45 CC                              MOV [%EBP-52],%EAX
 0131 B8 01 00 00 00                        MOV %EAX,#1
 0136 2B 45 CC                              SUB %EAX,[%EBP-52]
 0139 89 45 F8                              MOV [%EBP-8],%EAX
 013C                      L1021  EQU $
 013C 8B 45 F8                              MOV %EAX,[%EBP-8]
 013F 3B 45 D0                              CMP %EAX,[%EBP-48]
 0142 74 00                                 JE L1022
 0144 03 45 CC                              ADD %EAX,[%EBP-52]
 0147 89 45 F8                              MOV [%EBP-8],%EAX
    25    %repeat
 014A EB 00                                 JMP L1021
 014C                      L1022  EQU $
    26    %cycle h = i,j,3
 014C 8B 45 F0                              MOV %EAX,[%EBP-16]
 014F 89 45 C8                              MOV [%EBP-56],%EAX
 0152 8B 45 F4                              MOV %EAX,[%EBP-12]
 0155 2B 45 C8                              SUB %EAX,[%EBP-56]
 0158 89 45 F8                              MOV [%EBP-8],%EAX
 015B                      L1023  EQU $
 015B 8B 45 F8                              MOV %EAX,[%EBP-8]
 015E 3D 03 00 00 00                        CMP %EAX,#3
 0163 74 00                                 JE L1024
 0165 03 45 C8                              ADD %EAX,[%EBP-56]
 0168 89 45 F8                              MOV [%EBP-8],%EAX
    27    %repeat
 016B EB 00                                 JMP L1023
 016D                      L1024  EQU $
    28    %cycle h = i,-1,1
 016D 8B 45 F4                              MOV %EAX,[%EBP-12]
 0170 40                                    INC %EAX
 0171 89 45 F8                              MOV [%EBP-8],%EAX
 0174                      L1025  EQU $
 0174 8B 45 F8                              MOV %EAX,[%EBP-8]
 0177 3D 01 00 00 00                        CMP %EAX,#1
 017C 74 00                                 JE L1026
 017E 48                                    DEC %EAX
 017F 89 45 F8                              MOV [%EBP-8],%EAX
    29    %repeat
 0182 EB 00                                 JMP L1025
 0184                      L1026  EQU $
    30    %cycle h = 1,i,3
 0184 8B 45 F4                              MOV %EAX,[%EBP-12]
 0187 89 45 C4                              MOV [%EBP-60],%EAX
 018A B8 01 00 00 00                        MOV %EAX,#1
 018F 2B 45 C4                              SUB %EAX,[%EBP-60]
 0192 89 45 F8                              MOV [%EBP-8],%EAX
 0195                      L1027  EQU $
 0195 8B 45 F8                              MOV %EAX,[%EBP-8]
 0198 3D 03 00 00 00                        CMP %EAX,#3
 019D 74 00                                 JE L1028
 019F 03 45 C4                              ADD %EAX,[%EBP-60]
 01A2 89 45 F8                              MOV [%EBP-8],%EAX
    31    %repeat
 01A5 EB 00                                 JMP L1027
 01A7                      L1028  EQU $
    32    i = -1
 01A7 C7 45 F4 FF FF FF FF                  MOV DWORD PTR [%EBP-12],#-1
    33    %cycle h = 3,i,1
 01AE 8B 45 F4                              MOV %EAX,[%EBP-12]
 01B1 89 45 C0                              MOV [%EBP-64],%EAX
 01B4 B8 03 00 00 00                        MOV %EAX,#3
 01B9 2B 45 C0                              SUB %EAX,[%EBP-64]
 01BC 89 45 F8                              MOV [%EBP-8],%EAX
 01BF                      L1029  EQU $
 01BF 8B 45 F8                              MOV %EAX,[%EBP-8]
 01C2 3D 01 00 00 00                        CMP %EAX,#1
 01C7 74 00                                 JE L1030
 01C9 03 45 C0                              ADD %EAX,[%EBP-64]
 01CC 89 45 F8                              MOV [%EBP-8],%EAX
    34    %repeat
 01CF EB 00                                 JMP L1029
 01D1                      L1030  EQU $
    35  %endofprogram
 01D1 C9                                    LEAVE
 01D2 C3                                    RET

    37 Statements compiled



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


