汇编的程序出错了(帮小弟我看看吧)
汇编的程序出错了(帮我看看吧)
程序语法没错,但是出来的结果不对,
.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
程序语法没错,但是出来的结果不对,
.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