         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integer fred, jim, i
     3  first:
 0004                      L1001  EQU $
     4    jim = 1
 0004 C7 45 F4 01 00 00 00                  MOV DWORD PTR [%EBP-12],#1
     5    %if jim = 1 %then -> first
 000B 8B 45 F4                              MOV %EAX,[%EBP-12]
 000E 3D 01 00 00 00                        CMP %EAX,#1
 0013 75 00                                 JNE L1002
 0015 EB 00                                 JMP L1001
 0017                      L1002  EQU $
     6    jim = 2
 0017 C7 45 F4 02 00 00 00                  MOV DWORD PTR [%EBP-12],#2
     7    %if jim = 2 %then -> second
 001E 8B 45 F4                              MOV %EAX,[%EBP-12]
 0021 3D 02 00 00 00                        CMP %EAX,#2
 0026 75 00                                 JNE L1003
 0028 EB 00                                 JMP L1004
 002A                      L1003  EQU $
     8    %for fred = 1, 10, jim %cycle
 002A 8B 45 F4                              MOV %EAX,[%EBP-12]
 002D 89 45 EC                              MOV [%EBP-20],%EAX
 0030 C7 45 F8 F7 FF FF FF                  MOV DWORD PTR [%EBP-8],#-9
 0037                      L1005  EQU $
 0037 8B 45 F8                              MOV %EAX,[%EBP-8]
 003A 3B 45 EC                              CMP %EAX,[%EBP-20]
 003D 74 00                                 JE L1006
 003F 05 0A 00 00 00                        ADD %EAX,#10
 0044 89 45 F8                              MOV [%EBP-8],%EAX
     9      %if i = 55 %then %continue
 0047 8B 45 F0                              MOV %EAX,[%EBP-16]
 004A 3D 37 00 00 00                        CMP %EAX,#55
 004F 75 00                                 JNE L1007
 0051 EB 00                                 JMP L1008
 0053                      L1007  EQU $
    10      %if i = 99 %then %exit
 0053 8B 45 F0                              MOV %EAX,[%EBP-16]
 0056 3D 63 00 00 00                        CMP %EAX,#99
 005B 75 00                                 JNE L1009
 005D EB 00                                 JMP L1006
 005F                      L1009  EQU $
    11      i = i+1
 005F FF 45 F0                              INC DWORD PTR [%EBP-16]
    12    %repeat
 0062                      L1008  EQU $
 0062 EB 00                                 JMP L1005
 0064                      L1006  EQU $
    13    %while fred < jim %cycle
 0064                      L1010  EQU $
 0064 8B 45 F8                              MOV %EAX,[%EBP-8]
 0067 3B 45 F4                              CMP %EAX,[%EBP-12]
 006A 7D 00                                 JGE L1011
    14      %if i = 55 %then %continue
 006C 8B 45 F0                              MOV %EAX,[%EBP-16]
 006F 3D 37 00 00 00                        CMP %EAX,#55
 0074 75 00                                 JNE L1012
 0076 EB 00                                 JMP L1013
 0078                      L1012  EQU $
    15      %if i = 99 %then %exit
 0078 8B 45 F0                              MOV %EAX,[%EBP-16]
 007B 3D 63 00 00 00                        CMP %EAX,#99
 0080 75 00                                 JNE L1014
 0082 EB 00                                 JMP L1011
 0084                      L1014  EQU $
    16      i = i+1
 0084 FF 45 F0                              INC DWORD PTR [%EBP-16]
    17    %repeat
 0087                      L1013  EQU $
 0087 EB 00                                 JMP L1010
 0089                      L1011  EQU $
    18    %cycle
 0089                      L1015  EQU $
    19      %if i = 55 %then %continue
 0089 8B 45 F0                              MOV %EAX,[%EBP-16]
 008C 3D 37 00 00 00                        CMP %EAX,#55
 0091 75 00                                 JNE L1016
 0093 EB 00                                 JMP L1017
 0095                      L1016  EQU $
    20      %if i = 99 %then %exit
 0095 8B 45 F0                              MOV %EAX,[%EBP-16]
 0098 3D 63 00 00 00                        CMP %EAX,#99
 009D 75 00                                 JNE L1018
 009F EB 00                                 JMP L1019
 00A1                      L1018  EQU $
    21      i = i+1
 00A1 FF 45 F0                              INC DWORD PTR [%EBP-16]
    22    %repeat %until fred = jim
 00A4                      L1017  EQU $
 00A4 8B 45 F8                              MOV %EAX,[%EBP-8]
 00A7 3B 45 F4                              CMP %EAX,[%EBP-12]
 00AA 74 00                                 JE L1019
 00AC EB 00                                 JMP L1015
 00AE                      L1019  EQU $
    23    %cycle
 00AE                      L1020  EQU $
    24      %if i = 55 %then %continue
 00AE 8B 45 F0                              MOV %EAX,[%EBP-16]
 00B1 3D 37 00 00 00                        CMP %EAX,#55
 00B6 75 00                                 JNE L1021
 00B8 EB 00                                 JMP L1022
 00BA                      L1021  EQU $
    25      %if i = 99 %then %exit
 00BA 8B 45 F0                              MOV %EAX,[%EBP-16]
 00BD 3D 63 00 00 00                        CMP %EAX,#99
 00C2 75 00                                 JNE L1023
 00C4 EB 00                                 JMP L1024
 00C6                      L1023  EQU $
    26      i = i+1
 00C6 FF 45 F0                              INC DWORD PTR [%EBP-16]
    27    %repeat
 00C9                      L1022  EQU $
 00C9 EB 00                                 JMP L1020
 00CB                      L1024  EQU $
    28  second:
 00CB                      L1004  EQU $
    29  %endofprogram
 00CB C9                                    LEAVE
 00CC C3                                    RET
