         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integer inum
     3    %real rnum
     4    %string (255) str = "improperly initialised?"
 0004 8D 85 F4 FE FF FF                     LEA %EAX,[%EBP-268]
 000A 50                                    PUSH %EAX
 000B B9 00 00 00 00                        MOV %ECX,COT+#0
 0010 51                                    PUSH %ECX
 0011 68 FF 00 00 00                        PUSH #255
 0016 E8 03 00                              CALL '_IMPSTRCPY' (EXTERN 3)
 0019 83 C4 0C                              ADD %ESP,#12
     5    
     6    inum = 0123
 001C C7 45 F8 7B 00 00 00                  MOV DWORD PTR [%EBP-8],#123
     7    inum = 123
 0023 C7 45 F8 7B 00 00 00                  MOV DWORD PTR [%EBP-8],#123
     8    inum = X'AA'
 002A C7 45 F8 AA 00 00 00                  MOV DWORD PTR [%EBP-8],#170
     9    inum = X'aa'
 0031 C7 45 F8 AA 00 00 00                  MOV DWORD PTR [%EBP-8],#170
    10    inum = K'77'
 0038 C7 45 F8 3F 00 00 00                  MOV DWORD PTR [%EBP-8],#63
    11    inum = B'1101'
 003F C7 45 F8 0D 00 00 00                  MOV DWORD PTR [%EBP-8],#13
    12    inum = 10_0123
 0046 C7 45 F8 7B 00 00 00                  MOV DWORD PTR [%EBP-8],#123
    13    inum = 16_aa
 004D C7 45 F8 AA 00 00 00                  MOV DWORD PTR [%EBP-8],#170
    14    inum = 16_AA
 0054 C7 45 F8 AA 00 00 00                  MOV DWORD PTR [%EBP-8],#170
    15    inum = M'FRED'
 005B C7 45 F8 44 45 52 46                  MOV DWORD PTR [%EBP-8],#1179796804
    16    inum = M'fred'
 0062 C7 45 F8 64 65 72 66                  MOV DWORD PTR [%EBP-8],#1718773092
    17    !! NOT IMP77: inum = 'FRED'
    18    !! NOT IMP77: inum = 'fred'
    19    inum = 8_77
 0069 C7 45 F8 3F 00 00 00                  MOV DWORD PTR [%EBP-8],#63
    20    inum = 2_1101
 0070 C7 45 F8 0D 00 00 00                  MOV DWORD PTR [%EBP-8],#13
    21  
    22    rnum = 0123
 0077 DB 05 18 00 00 00                     FILD [COT+0018]
 007D D9 5D F4                              FSTP DWORD [%EBP-12]
    23    rnum = 0123.234
 0080 DD 05 1C 00 00 00                     FLD QWORD [COT+001C]
 0086 D9 5D F4                              FSTP DWORD [%EBP-12]
    24    rnum = 0123.0234
 0089 DD 05 24 00 00 00                     FLD QWORD [COT+0024]
 008F D9 5D F4                              FSTP DWORD [%EBP-12]
    25    rnum = 0123.4@2
 0092 DD 05 2C 00 00 00                     FLD QWORD [COT+002C]
 0098 D9 5D F4                              FSTP DWORD [%EBP-12]
    26    rnum = 0123.4@-2
 009B DD 05 34 00 00 00                     FLD QWORD [COT+0034]
 00A1 D9 5D F4                              FSTP DWORD [%EBP-12]
    27    rnum = 0123@2
 00A4 DD 05 3C 00 00 00                     FLD QWORD [COT+003C]
 00AA D9 5D F4                              FSTP DWORD [%EBP-12]
    28    rnum = 0123@+2
 00AD DD 05 44 00 00 00                     FLD QWORD [COT+0044]
 00B3 DB 05 4C 00 00 00                     FILD [COT+004C]
 00B9 DE C1                                 FADDP ST(1),ST
 00BB D9 5D F4                              FSTP DWORD [%EBP-12]
    29    rnum = 0123@-2
 00BE DD 05 50 00 00 00                     FLD QWORD [COT+0050]
 00C4 D9 5D F4                              FSTP DWORD [%EBP-12]
    30    rnum = 123
 00C7 DB 05 18 00 00 00                     FILD [COT+0018]
 00CD D9 5D F4                              FSTP DWORD [%EBP-12]
    31    rnum = .234
 00D0 DD 05 58 00 00 00                     FLD QWORD [COT+0058]
 00D6 D9 5D F4                              FSTP DWORD [%EBP-12]
    32    rnum = .234@3
 00D9 DD 05 60 00 00 00                     FLD QWORD [COT+0060]
 00DF D9 5D F4                              FSTP DWORD [%EBP-12]
    33    rnum = 0123.
 00E2 DD 05 44 00 00 00                     FLD QWORD [COT+0044]
 00E8 D9 5D F4                              FSTP DWORD [%EBP-12]
    34    rnum = 0123.@4
 00EB DD 05 68 00 00 00                     FLD QWORD [COT+0068]
 00F1 D9 5D F4                              FSTP DWORD [%EBP-12]
    35    rnum = 0.@3
 00F4 DD 05 70 00 00 00                     FLD QWORD [COT+0070]
 00FA D9 5D F4                              FSTP DWORD [%EBP-12]
    36    !rnum = 0.@      ;! rejected forms:
    37    !rnum = .@3
    38  
    39    str = "improperly assigned?"
 00FD 8D 85 F4 FE FF FF                     LEA %EAX,[%EBP-268]
 0103 50                                    PUSH %EAX
 0104 B9 78 00 00 00                        MOV %ECX,COT+#120
 0109 51                                    PUSH %ECX
 010A 68 FF 00 00 00                        PUSH #255
 010F E8 03 00                              CALL '_IMPSTRCPY' (EXTERN 3)
 0112 83 C4 0C                              ADD %ESP,#12
    40    !! NOT IMP77: str = 'ditto, old style'
    41    
    42  %endofprogram
 0115 C9                                    LEAVE
 0116 C3                                    RET

    33 Statements compiled



 ELF object file generated from IMP source file: '/home/gtoal/src/compilers101/new-parser/imps/tests/test93.imp'
 +----------+---------------------+---------+---------+---------+------------+
 | Sections |       Symbols       | Code    | Data    | Diag    | Total size |
 +----------+----------+----------+---------+---------+---------+------------+
 |  (count) | Internal | External | (bytes) | (bytes) | (bytes) | (bytes)    |
 +----------+----------+----------+---------+---------+---------+------------+
 |       12 |        5 |        7 |     283 |     142 |      32 |        457 |
 +----------+----------+----------+---------+---------+---------+------------+


