Разработка программы, формирующей протокол работы препроцессора при обработки исходного текста программы на языке ассемблера, страница 2

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                             IFB <>

                  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

1                37                                  ENDM

1                38                                  ENDM

1                39                                  ENDM

1                40                                  ENDM

1                41                                  ENDM

1                42                                  ENDM

1                43                                  ENDM

1                44                                  ENDM

1                45                                  ENDM

1                46                                  ENDM

1                47                                  ENDM

1                48                                  ENDM

1                49                                  ENDM

1                50                                  ENDM

1                51                                  ENDM

                  53   0000  42               INC DX

                  54                              MYM4 AX

1                55                             IFB < AX >

1                56                            MOV AX, AX

1                57                            MOV DX, AX

1                58                          ELSE

1                59   0001  48           DEC AX

1                60   0002  8B D0               MOV DX, AX

1                61                                    ENDIF

                  62   0004  8B C1                  MOV AX,CX

                  63   0006  3D CF                 DDD: CMP CX,DI

                  64   0008  00                     A DB 0

                  65   0009  8B 05               MOV BX,5

                  66                                       MYM AX,BX,10,20

1                67   000B  8B C0               MOV AX, AX

1                68   000D  8B C8              MOV CX, AX

1                69   000F  48                    DEC AX

                  70   0010  3D CB                 CMP CX,BX

                  71   0012  8B 0002r             MOV DX,W

                  72                 ZN:

                  73   0014  48                        DEC AX

                  74                                      MYM2 10,20

1                75   0015  8B 0A               MOV AX, 10

1                76   0017  8B 14                MOV CX, 20

                  77   0019  8B D9                  MOV BX,CX

                  78                                      MYM3 BX,CX

1                79   001B  4B                   DEC BX

1                80   001C  41                    INC CX

                  81   001D  8B 10                  MOV AX,16

                  82   001F  3D C3                  CMP AX,BX

                  83   0021                          CODE ENDS

                  84                                     END

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

                   DATA  0007

                   CODE  0021

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

                     AS      WORD               DS:0000

                      W      WORD                DS:0002

                      M      BYTE                   DS:0004

                  DFGHA      WORD         DS:0005

                      A      BYTE                   CS:0008

                    DDD      NEAR              CS:0006

                     ZN      NEAR                 CS:0014

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

                                MYM

                               MYM2

                               MYM3

                               MYM4

8.Вывод: в этой лабораторной работе были рассмотрены принципы работы препроцессора, а также компиляциия программ на языке ассемблера, содер-жащих его директивы.