标题:请看看这程序错在哪里
只看楼主
sbipxk
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-12-7
 问题点数:0 回复次数:2 
请看看这程序错在哪里
data segment
max db 20
actlen db ?
string db 20 dup(?)
form db ''''name'''',20 dup('''' ''''),''''tel$''''
data1 db ''''input_name:$''''
data2 db ''''input a telephone number:$''''
outname db 10 dup('''' ''''),''''$''''
outphone db 8 dup('''' ''''),''''$''''
data ends
code segment
assume cs:code,ds:data,es:data
main proc far
start:mov ax,data
mov ds,ax
mov es,ax
lea dx,data1
mov ah,9
int 21h
call input_name
call crlf
lea dx,data2
mov ah,9
int 21h
call inphone
call crlf
call printline
mov ah,0
int 16h
mov ah,4ch
int 21h
main endp
getchar proc near
lea dx,max
mov ah,0ah
int 21h
ret
getchar endp
input_name proc near
call getchar
mov cx,10
cld
lea si,string
lea di,outname
rep movsb
ret
input_name endp
inphone proc near
call getchar
mov cx,8
cld
lea si,string
lea di,outphone
rep movsb
ret
inphone endp
printline proc
lea dx,form
mov ah,9
int 21h

call crlf
mov ah,0
int 16h
lea dx,outname
mov ah,09h
int 21h
lea dx,outphone
mov ah,9
int 21h
ret
printline endp
crlf proc near
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
ret
crlf endp
code ends
end start
这个程序是实现这样的功能
编写一个子程序嵌套结构的程序模块,分别从键盘输入姓名及8个字符的电话号码,并以一定的格式显示出来。
主程序TELIST:
(1)显示提示符INPUT NAME:;
(2)调用子程序INPUT_NAME输入姓名;
(3)显示提示符INPUT A TELEPHONE NUMBER:;
(4)调用子程序INPHONE输入电话号码;
(5)调用子程序PRINTLINE显示姓名及电话号码。
子程序INPUT_NAME:
(1)调用键盘输入子程序GETCHAR,把输入的姓名存放在INBUF 缓冲区中;
(2)把INBUF中的姓名移入输出行OUTNAME。
子程序INPHONE:
(1)调用键盘输入子程序GETCHAR,把输入的8位电话号码存放在INBUF
缓冲区中;
(2)把INBUF中的号码移入输出行OUTPHONE。
子程序PRINTLINE:
显示姓名及电话号码,格式为:
NAME TEL.
*** ***
我的输出不知为什么出错,麻烦哪位高手能帮我看看,给我讲讲,我将感激不尽,小弟在这里谢谢了
搜索更多相关主题的帖子: data dup mov segment 
2006-12-07 20:27
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
得分:0 
我到觉得你的程序写的再好也不会有人愿意花那么多的时间看的,因为你没有给出适当的注释,要是把你实现的模块功能注释一下或是把某些重要的语句注释一下的话,我想就有好多人来关注了!这就是你的帖子为什么一直没有人回的根本原因.因为大家的时间都比较紧的,要想看懂这个没有注释的程序会花好长时间的,所以为了节省大家的宝贵时间我建议你还是适当的加一些注释!

♂ 死后定当长眠,生前何须久睡。♀
2006-12-10 19:03
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
得分:0 
把开头改成这样应该就可以了吧?!?!
data segment
max db 20
actlen db ?
string db 20 dup(?)
form db 'name',20 dup(?),'tel$'
data1 db 'input_name:$'
data2 db 'input a telephone number:$'
outname db 10 dup(?),'$'
outphone db 8 dup(?),'$'
data ends

喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2006-12-24 20:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-107967-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.320557 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved