;*************************
        DATA  SEGMENT
     NUMBER1  DW        1
     NUMBER2  DW        1
      NUMLEN  DW        3
        MESS  DB        'the 25th number is:','$'
        DATA  ENDS
;***********************
;数据定义

     PROGRAM  SEGMENT
        MAIN  PROC      FAR
              ASSUME    CS:PROGRAM,DS:DATA
      START:
;set up stack for return
              PUSH      DS
              SUB       AX,AX
              PUSH      AX
    ;set ds register to current data segment
              MOV       AX,DATA
              MOV       DS,AX
              CALL      FBL
              LEA       DX,MESS
              MOV       AH,09H
              INT       21H
              MOV       AX,4C00H
              INT       21H
              RET
        MAIN  ENDP
;**************************************
         FBL  PROC      NEAR


    ;

              MOV       AX,NUMBER1
              MOV       BX,AX
              MOV       AX,NUMBER2
              ADD       AX,BX
              MOV       NUMBER2,BX
              MOV       NUMBER1,AX
              INC       NUMLEN
              CMP       NUMLEN,19H
              JL        SECEND
     SECEND:
              CALL      FBL


              RET

         FBL  ENDP
;*****************************
     PROGRAM  ENDS
;
              END       START