         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %externalroutine test     ;! Fails if in a routine but works OK in a begin/end block
 0000                      L1000  EQU $
 0000 C8 00 00 01                           ENTER 0000,1
     2    %if 0 = 1 %then %start  ;! only fails if in an "if" condition. Doesn't matter if forward or reversed or a start/finish block!
 0004 B8 01 00 00 00                        MOV %EAX,#1
 0009 3D 00 00 00 00                        CMP %EAX,#0
 000E 75 00                                 JNE L1001
     3      %signal 15,2
 0010 B8 03 00 00 00                        MOV %EAX,#3
 0015 50                                    PUSH %EAX
 0016 B8 0F 00 00 00                        MOV %EAX,#15
 001B 50                                    PUSH %EAX
 001C B8 02 00 00 00                        MOV %EAX,#2
 0021 50                                    PUSH %EAX
 0022 31 C0                                 XOR %EAX,%EAX
 0024 50                                    PUSH %EAX
 0025 E8 0B 00                              CALL '_IMPSIGNAL' (EXTERN 11)
 0028 83 C4 10                              ADD %ESP,#16
     4    %finish
 002B                      L1001  EQU $
     5  %end
 002B C9                                    LEAVE
 002C C3                                    RET
     6  
     7  %endoffile

     6 Statements compiled



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


