Препроцесори. Принципи написання програм, що обробляють вхідний текст програми, написаної мовою асемблера, страница 2

 MOV AX, AX

 MOV CX, AX

 DEC AX

    CMP CX,BX

    MOV DX,W

    DEC AX

 MOV AX, 10

 MOV CX, 20

    MOV BX,CX

     INC BX

     DEC AX

     INC BX

     DEC AX

 DEC BX

 INC CX

    MOV AX,16

    CMP AX,BX

  CODE ENDS

text2.lst

              1                     INCLUDE MYMAC.LIB

1             2                MYM  MACRO L1,L2,L3,L4

1             3                         MOV AX,L1

1             4                         MOV CX,L1

1             5                            DEC L1

1             6                              ENDM

1             7                      MYM2 MACRO P3,KK

1             8                         MOV AX,P3

1             9                         MOV CX,KK

1            10                              ENDM

1            11                      MYM3 MACRO C1,C2

1            12                            DEC C1

1            13                            INC C2

1            14                              ENDM

1            15                         MYM4 MACRO C1

1            16                          IFB <AX>

1            17                         MOV C1,AX

1            18                         MOV DX,C1

1            19                              ELSE

1            20                            DEC C1

1            21                         MOV DX,C1

1            22                             ENDIF

1            23                              ENDM

1            24

             26   0000                DATA SEGMENT PARA

             27                   IFNB < A >

             28   0000  0022           AS  DW 34

             29                   ELSE

             30                        K   DB 56

             31                   ENDIF

             32   0002  11B8           W   DW 4536

             33   0004  00        M   DB 0

             34   0005  0057           DFGHA DW 87

             35   0007               DATA ENDS

             36   0000                CODE SEGMENT

             37                     REPT 3

1            38   0000  41          INC CX

1            39   0001  8B C3             MOV AX,BX

1            40   0003  41          INC CX

1            41   0004  8B C3             MOV AX,BX

1            42   0006  41          INC CX

1            43   0007  8B C3             MOV AX,BX

             44                     ENDM

             45   0009  42          INC DX

             46                      MYM4 AX

1            47                  IFB < AX >

1            48                       MOV AX, AX

1            49                       MOV DX, AX

1            50                   ELSE

1            51   000A  48      DEC AX

1            52   000B  8B D0         MOV DX, AX

1            53                   ENDIF

             54   000D  8B C1            MOV AX,CX

             55   000F  3D CF           DDD: CMP CX,DI

             56   0011  00          A DB 0

             57   0012  8B 05            MOV BX,5

             58                     MYM AX,BX,10,20

1            59   0014  8B C0         MOV AX, AX

1            60   0016  8B C8         MOV CX, AX

1            61   0018  48      DEC AX

             62   0019  3D CB            CMP CX,BX

             63   001B  8B 0002r         MOV DX,W

             64                 ZN:

             65   001D  48         DEC AX

             66                     MYM2 10,20

1            67   001E  8B 0A         MOV AX, 10

1            68   0020  8B 14         MOV CX, 20

             69   0022  8B D9            MOV BX,CX

             70                     REPT 2

1            71   0024  43          INC BX

1            72   0025  48          DEC AX

1            73   0026  43          INC BX

1            74   0027  48          DEC AX

             75                     ENDM

             76                     MYM3 BX,CX

1            77   0028  4B       DEC BX

1            78   0029  41      INC CX

             79   002A  8B 10            MOV AX,16

             80   002C  3D C3            CMP AX,BX

             81   002E                CODE ENDS

             82                 END

===================table of segment=========================

              DATA  0007

              CODE  002E

====================symbol table=============================

                AS      WORD       DS:0000

                 W      WORD       DS:0002

                 M      BYTE       DS:0004

             DFGHA      WORD       DS:0005

                 A      BYTE       CS:0011

               DDD      NEAR       CS:000F

                ZN      NEAR       CS:001D

=========================macro table===============================

                           MYM

                          MYM2

                          MYM3

                          MYM4

5. Висновки

 В даній лабораторній роботі були розглянуті принципи роботи препроцесора, а токож компіляція програм мови асемблера, що включають його директиви.