         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2     %integer %name i, t1
     3     %string (10) %name s, t2
     4     ! De-Morgan failure:
     5     %unless t1 == i %and t2 == s %then printstring("BUG1 FOUND")
 0004 8B 45 F4                              MOV %EAX,[%EBP-12]
 0007 3B 45 F8                              CMP %EAX,[%EBP-8]
 000A 75 00                                 JNE L1001
 000C 8B 45 EC                              MOV %EAX,[%EBP-20]
 000F 3B 45 F0                              CMP %EAX,[%EBP-16]
 0012 74 00                                 JE L1002
 0014                      L1001  EQU $
 0014 81 EC 00 01 00 00                     SUB %ESP,#256
 001A 89 E0                                 MOV %EAX,%ESP
 001C 50                                    PUSH %EAX
 001D B8 00 00 00 00                        MOV %EAX,COT+#0
 0022 50                                    PUSH %EAX
 0023 68 FF 00 00 00                        PUSH #255
 0028 E8 03 00                              CALL '_IMPSTRCPY' (EXTERN 3)
 002B 83 C4 0C                              ADD %ESP,#12
 002E E8 3B 00                              CALL 'PRINTSTRING' (EXTERN 59)
 0031 81 C4 00 01 00 00                     ADD %ESP,#256
 0037                      L1002  EQU $
     6     %if t1 ## i %and t2 ## s %then printstring("BUG2 FOUND")
 0037 8B 45 F4                              MOV %EAX,[%EBP-12]
 003A 3B 45 F8                              CMP %EAX,[%EBP-8]
 003D 74 00                                 JE L1003
 003F 8B 45 EC                              MOV %EAX,[%EBP-20]
 0042 3B 45 F0                              CMP %EAX,[%EBP-16]
 0045 74 00                                 JE L1003
 0047 81 EC 00 01 00 00                     SUB %ESP,#256
 004D 89 E0                                 MOV %EAX,%ESP
 004F 50                                    PUSH %EAX
 0050 B8 0B 00 00 00                        MOV %EAX,COT+#11
 0055 50                                    PUSH %EAX
 0056 68 FF 00 00 00                        PUSH #255
 005B E8 03 00                              CALL '_IMPSTRCPY' (EXTERN 3)
 005E 83 C4 0C                              ADD %ESP,#12
 0061 E8 3B 00                              CALL 'PRINTSTRING' (EXTERN 59)
 0064 81 C4 00 01 00 00                     ADD %ESP,#256
 006A                      L1003  EQU $
     7  %end %of %program
 006A C9                                    LEAVE
 006B C3                                    RET

     6 Statements compiled



 ELF object file generated from IMP source file: '/home/gtoal/src/compilers101/new-parser/imps/tests/test96.imp'
 +----------+---------------------+---------+---------+---------+------------+
 | Sections |       Symbols       | Code    | Data    | Diag    | Total size |
 +----------+----------+----------+---------+---------+---------+------------+
 |  (count) | Internal | External | (bytes) | (bytes) | (bytes) | (bytes)    |
 +----------+----------+----------+---------+---------+---------+------------+
 |       12 |        5 |        8 |     116 |      22 |      32 |        170 |
 +----------+----------+----------+---------+---------+---------+------------+


