程序语法没错,但是出来的结果不对,
.model small
.stack 40h
.data
namepar label byte
maxnlen db 21
namelen db ?
namefld db 21 dup(?)
telpar label byte
telmaxlen db 9
tellen db ?
telfld db 9 dup(?)
crlf db 13,10, '$ '
endaddr dw ?
messg1 db 'Input name: ', '$ '
messg2 db 'Input a telephone number: ', '$ '
messg3 db 'Do you want a telephone number?(Y/N) ',13,10, '$ '
messg4 db 'name? ', '$ '
messg5 db 'name telphone ',13,10, '$ '
namectr db 0
tel_tab db 50 dup(28 dup( ' '))
namesav db 20 dup(?),13,10, '$ '
telsav db 8 dup(?),13,10, '$ '
na_telsav db 28 dup(?),13,10, '$ '
swapped db 0
;******************************************************************************
.code
begin proc far
mov ax,@data
mov ds,ax
mov es,ax
cld
lea di,tel_tab
a:
call input_name
call inphone
cmp namelen,0
jz a30
cmp namectr,50
je a30
call stor_name
call stor_tel
jmp a
a30:
cmp namectr,1
jbe a40
call name_sort
call println
call name_search
a40:
mov ax,4c00h
int 21h
;*****************************************************************************
input_name proc near
mov ah,09
lea dx,messg1
int 21h
mov ah,0ah
lea dx,namepar
int 21h
mov ah,09
lea dx,crlf
int 21h