DATAS SEGMENT
    A DB ?
    B DB ?
    D DB ?
    E DB ?
    F DB ?
    X DW ?
    Y DW ?
    Z DW ?
    BUF DB 10 DUP (?)
    STR0 DB 10,13,'                 ************************************$'
    STR1 DB 10,13,'                 *  si wei shu xiang cheng xi tong  *$'
    STR2 DB 10,13,'                 *    cheng   shu :                 *$'
    STR3 DB 10,13,'                 *   bei cheng shu:                 *$'
    STR4 DB 10,13,'                 *                                  *$'
    STR5 DB 10,13,'           jie guo :$' 
    ;此处输入数据段代码  
DATAS ENDS

PR MACRO BUFF
    MOV AH,9
    LEA DX,BUFF
    INT 21H
ENDM    

CLEAR MACRO   ;清屏
     PUSH AX
     PUSH BX
     PUSH CX
     PUSH DX
     MOV AH,2
     MOV DH,0
     MOV DL,0
     INT 10H
     MOV AH,6
     MOV AL,0
     MOV BH,13
     MOV CX,0
     MOV DX,184FH
     INT 10H
     POP DX
     POP CX
     POP BX
     POP AX
ENDM 

CLE MACRO X,Y   ;清部分屏
    PUSH AX
     PUSH BX
     PUSH CX
     PUSH DX
     MOV AH,2
     MOV DH,0
     MOV DL,0
     INT 10H
     MOV AH,6
     MOV AL,0
     MOV BH,27
     MOV CH,X
     MOV CL,35
     MOV DH,Y
     MOV DL,51
     INT 10H
     POP DX
     POP CX
     POP BX
     POP AX
ENDM 

ZW  MACRO X,Y    ;置位
    MOV AH,2
    MOV DH,X
    MOV DL,Y
    MOV BH,0
    INT 10H
ENDM

STACKS SEGMENT
    
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    CLEAR
    PR STR0
    PR STR4
    PR STR1
    PR STR4
    PR STR4
    PR STR2
    PR STR4
    PR STR3
    PR STR4
    PR STR0
    CLE 6,8
 F1:
     MOV F,1
     CLE 6,6   
    ZW 6,35
    CALL INPUT
    MOV Y,AX
 F2:
     MOV F,0
     CLE 8,8
     ZW 8,35
     CALL INPUT
     MOV Z,AX
     JMP F4
 F3:
     CMP F,1
     JE F1
     JMP F2
 F4:
     MOV AX,Y
     MUL Z
     MOV X,10000
     DIV X
     MOV CX,DX
     MOV BX,AX
     MOV AX,CX
     MOV X,100
     DIV X
     MOV A,AH
     MOV B,AL
     MOV AX,BX
     DIV X
     MOV D,AH
     MOV E,AL
     MOV F,10
     MOV BX,0
     MOV AL,A
     CBW
     DIV F
     CMP AH,0
     JNE F6
 F5:    
     MOV BUF[BX],AL
     MOV AL,B
     CBW
     DIV F
     INC BX
     MOV BUF[BX],AH
     INC BX
     MOV BUF[BX],AL
     MOV AL,D
     CBW
     DIV F
     INC BX
     MOV BUF[BX],AH
     INC BX
     MOV BUF[BX],AL
     MOV AL,E
     CBW
     DIV F
     INC BX
     MOV BUF[BX],AH
     INC BX
     MOV BUF[BX],AL
     INC BX
     MOV BUF[BX],'$'    
     ZW 12,2
     PR STR5
     PR BUF
     JMP EXIT
 F6:
     MOV BUF[BX],AH
     INC BX
     JMP F5       
    
    
 EXIT:   ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
 INPUT PROC
    PUSH BX
    PUSH CX
    PUSH DX   
    MOV AH,1      ;千位
    INT 21H
    CMP AL,30H
    JS F3
    CMP AL,3AH
    JNS F3
    SUB AL,30H
    MOV A,AL
    
    MOV AH,1    ;百位
    INT 21H
    CMP AL,30H
    JS F3
    CMP AL,3AH
    JNS F3
    SUB AL,30H
    MOV B,AL
    
    MOV AH,1     ;十位
    INT 21H
    CMP AL,30H
    JS F3
    CMP AL,3AH
    JNS F3
    SUB AL,30H
    MOV D,AL
    
    MOV AH,1   ;个位
    INT 21H
    CMP AL,30H
    JS F3
    CMP AL,3AH
    JNS F3
    SUB AL,30H
    MOV E,AL
    
    MOV AL,A
    MOV BX,1000
    MUL BX
    MOV X,AX
    MOV AL,B
    MOV BX,100
    MUL BX
    ADD AX,X
    MOV X,AX
    MOV AL,D
    MOV BL,10
    MUL BL
    ADD AX,X
    MOV X,AX
    MOV AL,E
    CBW
    ADD AX,X   
    POP DX
    POP CX
    POP BX
    RET 
INPUT ENDP    
    
CODES ENDS
    END START