[font=黑体][/font][color=000000][/color]
;此程序目的是想由键盘输入一个姓名和电话号码,然后输出,怎么输出时多了一串字符,请你们帮帮我呀.在此谢过!






DATA SEGMENT
INPUTNAME      DB 'INPUT NAME: $'
INPUTTELE      DB 'INPUT A TELEPHONE NUMBER: $'
MAX            DB 9
REAL           DB ?
INBUF          DB 9 DUP(?)
OUTNAME        DB 10 DUP(?)
OUTPHONE       DB 10 DUP(?)
DATA ENDS

C_SEG SEGMENT
ASSUME         DS:DATA,ES:DATA,CS:C_SEG
START:         MOV AX,DATA
               MOV DS,AX
               MOV ES,AX
TELIST PROC FAR
               LEA DX,INPUTNAME
               MOV AH,9
               INT 21H
               CALL INPUT_NAME
               LEA DX,INPUTTELE
               MOV AH,9
               INT 21H
               CALL INPHONE
               CALL PRINTLINE
               MOV AX,4C00H
               INT 21H
TELIST ENDP
INPUT_NAME  PROC NEAR
               PUSH BX
               PUSH DI
               PUSH SI
               PUSH CX
               XOR BX,BX  
               CALL GETCHAR
               LEA  DI,OUTNAME
               LEA  SI,INBUF
               MOV  CX,8
               CLD
               REP MOVSB
               ADD BX,8
               MOV OUTNAME[BX],'$'
               POP CX
               POP SI
               POP DI
               POP BX
               RET
INPUT_NAME ENDP
  
INPHONE PROC NEAR
               PUSH BX
               PUSH DI
               PUSH SI
               PUSH CX
               XOR BX,BX  
               CALL GETCHAR
               LEA  DI,OUTPHONE
               LEA  SI,INBUF
               MOV  CX,8
               CLD
               REP MOVSB
               ADD BX,8
               MOV OUTPHONE[BX],'$'
               POP CX
               POP SI
               POP DI
               POP BX
               RET

INPHONE ENDP
PRINTLINE PROC NEAR
              PUSH DX
              PUSH AX
              LEA DX,OUTNAME
              MOV AH,9
              INT 21H
              
              LEA DX,OUTPHONE
              
              MOV AH,9
              INT 21H
              POP AX
              POP DX
              RET
PRINTLINE ENDP
GETCHAR  PROC  NEAR
               PUSH DX
               push ax

               LEA DX,MAX
               MOV AH,0AH
               INT 21H
               pop ax
               POP DX
               RET
GETCHAR ENDP
C_SEG ENDS
          END START