www.pudn.com > ASM11.rar > EXP12.ASM


        DATA  SEGMENT 
        BUF1  DB        5 DUP(?) 
        BUF2  DB        5 DUP(?) 
      RESULT  DB        6 DUP(0) 
        DAT1  DB        '-' 
        DAT2  DB        '+' 
        DATA  ENDS 
 
        STK1  SEGMENT 
              DB        300 DUP(?) 
        STK1  ENDS 
 
        CODE  SEGMENT 
        MAIN  PROC      FAR 
              ASSUME    CS:CODE,DS:DATA,SS:STK1 
      START:  MOV       AX,DATA 
              MOV       DS,AX 
              LEA       BX,BUF1 
              MOV       DL,20H 
              MOV       AH,02H 
              INT       21H 
              CALL      SHURU 
              LEA       BX,BUF2 
              MOV       DL,DAT2     ;show'+' 
              MOV       AH,02H 
              INT       21H 
              CALL      SHURU       ;finished input 
              LEA       DI,BUF1 
              ADD       DI,4 
              LEA       SI,BUF2 
              ADD       SI,4 
              LEA       BX,RESULT 
              ADD       BX,5        ;set up 3 pointers [bx]=[di]+[si] 
              CLC                   ;clear cf 
              MOV       CX,5 
       HUAN: 
              MOV       AL,[DI] 
              ADC       AL,[SI] 
              AAA                   ;adjust for 10jinzhi 
              MOV       [BX],AL 
              DEC       DI 
              DEC       SI 
              DEC       BX 
              LOOP      HUAN 
              MOV       AL,0 
              ADC       AL,0 
              MOV       [BX],AL 
 
              MOV       CX,7        ;show the '---------' 
         HR:  MOV       DL,DAT1 
              MOV       AH,02H 
              INT       21H 
              LOOP      HR 
 
              LEA       BX,RESULT   ;start to print result 
              MOV       CX,6 
         
              MOV       DL,0AH 
              MOV       AH,02H 
              INT       21H 
              MOV       DL,0DH 
              MOV       AH,02H 
              INT       21H 
 
         L6:  CMP       CX,6 
              JL        L5 
              MOV       DL,[BX] 
              CMP       DL,0 
              JG        L5 
              MOV       DL,20H 
              MOV       AH,02H 
              INT       21H 
              JMP       L3 
         L5:  MOV       DL,[BX] 
              ADD       DL,30H 
              MOV       AH,02H 
              INT       21H 
         L3:  INC       BX 
              LOOP      L6 
       OVER:  MOV       AH,4CH 
              INT       21H 
 
              RET 
        MAIN  ENDP 
;**************************** 
       SHURU  PROC      NEAR 
              PUSH      CX 
              PUSH      AX 
              MOV       CX,5 
         L1:  MOV       AH,01H 
              INT       21H 
              SUB       AL,30H 
              MOV       [BX],AL 
              INC       BX 
              LOOP      L1 
              MOV       DL,0AH 
              MOV       AH,02H 
              INT       21H 
              MOV       DL,0DH 
              MOV       AH,02H 
              INT       21H 
              POP       AX 
              POP       CX 
              RET 
       SHURU  ENDP 
;**************************** 
 
        CODE  ENDS 
              END       START