         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integer a,b,c
     3  
     4    a = 123
 0004 C7 45 F8 7B 00 00 00                  MOV DWORD PTR [%EBP-8],#123
     5    b = 234
 000B C7 45 F4 EA 00 00 00                  MOV DWORD PTR [%EBP-12],#234
     6    c = 345
 0012 C7 45 F0 59 01 00 00                  MOV DWORD PTR [%EBP-16],#345
     7  
     8    a = +123
 0019 C7 45 F8 7B 00 00 00                  MOV DWORD PTR [%EBP-8],#123
     9    a = -123
 0020 C7 45 F8 85 FF FF FF                  MOV DWORD PTR [%EBP-8],#-123
    10    a = ~123
 0027 C7 45 F8 84 FF FF FF                  MOV DWORD PTR [%EBP-8],#-124
    11  
    12  ! a = b+c
    13  ! a = b-c
    14    a = b*c
 002E 8B 45 F4                              MOV %EAX,[%EBP-12]
 0031 F7 6D F0                              IMUL DWORD PTR [%EBP-16]
 0034 89 45 F8                              MOV [%EBP-8],%EAX
    15  ! a = b//c
    16    
    17  ! a = b^^c
    18    
    19  ! a = b<<c
    20  ! a = b>>c
    21  
    22    a = b!c
 0037 8B 45 F4                              MOV %EAX,[%EBP-12]
 003A 0B 45 F0                              OR %EAX,[%EBP-16]
 003D 89 45 F8                              MOV [%EBP-8],%EAX
    23    a = b!!c
 0040 8B 45 F4                              MOV %EAX,[%EBP-12]
 0043 33 45 F0                              XOR %EAX,[%EBP-16]
 0046 89 45 F8                              MOV [%EBP-8],%EAX
    24    a = |b|
 0049 8B 45 F4                              MOV %EAX,[%EBP-12]
 004C 3D 00 00 00 00                        CMP %EAX,#0
 0051 7D 00                                 JGE L1001
 0053 F7 D8                                 NEG %EAX
 0055                      L1001  EQU $
 0055 89 45 F8                              MOV [%EBP-8],%EAX
    25  
    26  ! a = b&c
    27  
    28    a = b %if a = b
 0058 8B 45 F8                              MOV %EAX,[%EBP-8]
 005B 3B 45 F4                              CMP %EAX,[%EBP-12]
 005E 75 00                                 JNE L1002
 0060 8B 45 F4                              MOV %EAX,[%EBP-12]
 0063 89 45 F8                              MOV [%EBP-8],%EAX
 0066                      L1002  EQU $
    29    a = b %if a # b
 0066 8B 45 F8                              MOV %EAX,[%EBP-8]
 0069 3B 45 F4                              CMP %EAX,[%EBP-12]
 006C 74 00                                 JE L1003
 006E 8B 45 F4                              MOV %EAX,[%EBP-12]
 0071 89 45 F8                              MOV [%EBP-8],%EAX
 0074                      L1003  EQU $
    30    a = b %if a > b
 0074 8B 45 F8                              MOV %EAX,[%EBP-8]
 0077 3B 45 F4                              CMP %EAX,[%EBP-12]
 007A 7E 00                                 JLE L1004
 007C 8B 45 F4                              MOV %EAX,[%EBP-12]
 007F 89 45 F8                              MOV [%EBP-8],%EAX
 0082                      L1004  EQU $
    31    a = b %if a < b
 0082 8B 45 F8                              MOV %EAX,[%EBP-8]
 0085 3B 45 F4                              CMP %EAX,[%EBP-12]
 0088 7D 00                                 JGE L1005
 008A 8B 45 F4                              MOV %EAX,[%EBP-12]
 008D 89 45 F8                              MOV [%EBP-8],%EAX
 0090                      L1005  EQU $
    32    a = b %if a <= b
 0090 8B 45 F8                              MOV %EAX,[%EBP-8]
 0093 3B 45 F4                              CMP %EAX,[%EBP-12]
 0096 7F 00                                 JG L1006
 0098 8B 45 F4                              MOV %EAX,[%EBP-12]
 009B 89 45 F8                              MOV [%EBP-8],%EAX
 009E                      L1006  EQU $
    33    a = b %if a >= b
 009E 8B 45 F8                              MOV %EAX,[%EBP-8]
 00A1 3B 45 F4                              CMP %EAX,[%EBP-12]
 00A4 7C 00                                 JL L1007
 00A6 8B 45 F4                              MOV %EAX,[%EBP-12]
 00A9 89 45 F8                              MOV [%EBP-8],%EAX
 00AC                      L1007  EQU $
    34  
    35  %endofprogram
 00AC C9                                    LEAVE
 00AD C3                                    RET

    19 Statements compiled



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


