MESBOX  MACRO   MSG 
                        LEA     DX,MSG 
                        MOV     AH,09H 
                        INT     21H 
                        ENDM 
 0000                DATA    SEGMENT 
 0000  000A[                    STR     DB      10 DUP(?) 
        ??            
             ]    
                
 000A  49 4E 50 55 54 20 4E            MEG1    DB      'INPUT NUMBER A',0DH,0A
                H,'$' 
       55 4D 42 45 52 20 41    
       0D 0A 24            
 001B  49 4E 50 55 54 20 4E            MEG2    DB      'INPUT NUMBER B',0DH,0A
                H,'$' 
       55 4D 42 45 52 20 42    
       0D 0A 24            
 002C  54 48 45 20 52 45 53            MEG3    DB      'THE RESULT IS:$' 
       55 4C 54 20 49 53 3A    
       24            
 003B                DATA    ENDS 
 0000                CODE    SEGMENT 
                        ASSUME  CS:CODE,DS:DATA 
 0000                MAIN    PROC    FAR 
 0000  2B C0                    SUB     AX,AX 
 0002  B8 ---- R                MOV     AX,DATA 
 0005  8E D8                    MOV     DS,AX 
                        MESBOX  MEG1 
 0007  8D 16 000A R          1            LEA     DX,MEG1 
 000B  B4 09                 1            MOV     AH,09H 
 000D  CD 21                 1            INT     21H 
 000F  E8 0042 R                CALL    CIN 
 0012  33 C9                    XOR     CX,CX 
 0014  8B CB                    MOV     CX,BX 
 0016  BB 0000                    MOV     BX,0 
 0019  E8 005E R                CALL    CRLF 
                        MESBOX  MEG2 
 001C  8D 16 001B R          1            LEA     DX,MEG2 
 0020  B4 09                 1            MOV     AH,09H 
 0022  CD 21                 1            INT     21H 
 0024  E8 0042 R                CALL    CIN 
 0027  E8 005E R                CALL    CRLF 
 002A  33 C0                    XOR     AX,AX 
 002C  E8 006B R                CALL    FACT 
                        MESBOX  MEG3 
 002F  8D 16 002C R          1            LEA     DX,MEG3 
 0033  B4 09                 1            MOV     AH,09H 
 0035  CD 21                 1            INT     21H 
 0037  E8 0080 R                CALL    COUT 
 003A  B4 01                    MOV     AH,01H 
 003C  CD 21                    INT     21H 
 003E  B4 4C                    MOV     AH,4CH 
 0040  CD 21                    INT     21H    
Microsoft (R) Macro Assembler Version 5.00                  11/29/11 16:39:44
                                                             Page     1-2


 0042                MAIN    ENDP 
 0042                CIN     PROC    NEAR 
 0042  BB 0000                    MOV     BX,0 
 0045  B4 01            NEWNUM: MOV     AH,1 
 0047  CD 21                    INT     21H 
 0049  2C 30                    SUB     AL,30H 
 004B  7C 10                    JL      EXIT 
 004D  3C 09                    CMP     AL,9 
 004F  7F 0C                    JG      EXIT 
 0051  98                    CBW 
 0052  93                    XCHG    AX,BX 
 0053  B9 000A                    MOV     CX,10 
 0056  F7 E1                    MUL     CX 
 0058  93                    XCHG    AX,BX 
 0059  03 D8                    ADD     BX,AX 
 005B  EB E8                    JMP     NEWNUM 
 005D  C3            EXIT:   RET 
 005E                CIN     ENDP 
 005E                CRLF    PROC    NEAR 
 005E  B2 0D                    MOV     DL,0DH 
 0060  B4 02                    MOV     AH,02H 
 0062  CD 21                    INT     21H 
 0064  B2 0A                    MOV     DL,0AH 
 0066  B4 02                    MOV     AH,02H 
 0068  CD 21                    INT     21H 
 006A  C3                    RET 
 006B                CRLF    ENDP 
 006B                FACT    PROC     
 006B  83 FB 00                    CMP     BX,0 
 006E  75 04                    JNE     NEXT 
 0070  B8 0001                    MOV     AX,1 
 0073  C3                    RET 
 0074  B8 0001            NEXT:   MOV     AX,1 
 0077  F7 E1            LP:     MUL     CX 
 0079  4B                    DEC     BX 
 007A  83 FB 00                    CMP     BX,0 
 007D  7F F8                    JG      LP 
 007F  C3                    RET 
 0080                FACT    ENDP 
 0080                COUT    PROC     
 0080  33 C9                    XOR     CX,CX 
 0082  B9 000A                    MOV     CX,10 
 0085  2B DB                    SUB     BX,BX 
 0087  BB 0001                    MOV     BX,1 
 008A  BA 0000            LP1:    MOV     DX,0 
 008D  F7 F1                    DIV     CX 
 008F  80 C2 30                    ADD     DL,30H 
 0092  88 97 0000 R                MOV     STR[BX],DL 
 0096  43                    INC     BX 
 0097  3D 0000                    CMP     AX,0 
 009A  7F EE                    JG      LP1 
                 
 009C  33 C9                    XOR     CX,CX 
 009E  8B CB                    MOV     CX,BX 
Microsoft (R) Macro Assembler Version 5.00                  11/29/11 16:39:44
                                                             Page     1-3


 00A0  B4 02                    MOV     AH,02H 
 00A2  33 D2                    XOR     DX,DX 
 00A4  8A 97 0000 R        LP2:    MOV     DL,STR[BX] 
 00A8  4B                    DEC     BX 
 00A9  CD 21                    INT     21H 
 00AB  E2 F7                    LOOP    LP2 
 00AD  C3                    RET 
 00AE                COUT    ENDP 
 00AE                CODE    ENDS 
                        END     MAIN 

Microsoft (R) Macro Assembler Version 5.00                  11/29/11 16:39:44
                                                             Symbols-1