没有合适的资源?快使用搜索试试~ 我知道了~
实验四,电话号码,人名用20个字符表示,号码用8个字符表示,最多存放50项
资源推荐
资源详情
资源评论
一、实验目的
学习用汇编语言设计与编写子程序
二、实验要求
(1) 要求程序建立一个可存放 50 项的电话号码表,每项包括人名(20 个字符)及电话号码
(8 个字符)两部分;
(2) 程序可接收输入人名及相应的电话号码,并把它们加入电话号码表中;
(3) 凡有新的输入后,程序应按人名对电话号码表重新排序;
(4) 程序可接收需要查找电话号码的人名,并从电话号码表中查出其电话号码,再在屏幕
上以如下格式显示出来。
name tel.
X X X X X X X X
三、实验提示:
(1)显示提示符 ’Input name:’;
(2)调用子程序 input_name 接收人名;
(3)调用子程序 stor_name 把人名存入电话号码表 tel_tab 中:
(4)显示提示符 ’Input a telephone number:’;
(5)调用子程序 inphone 接收电话号码,并把它存入电话号码表 tel_tab 中;
(6)如输入已结束则调用 name_sort 子程序对电话号码表接人名排序;
(7)显示提示符 ’Do you want a telephone number ?(Y/N)’;
(8)回答 N 收退出程序;
(9)回答 Y 则再显示提示符 ’name ?’;
(10)调用子程序 input_name 接收人名;
(11)调用子程序 name_search 在电话号码表中查找所要的电话号码;
(12)调用子程序 printline 按要求格式显示人名及电话号码;
(13)重复查号提示符直至用户不要求查号为止。
四、实验程序
datarea segment
tel_name label byte
maxnlen db 20
namelen db ?
namefld db 21 dup(?) ;定义 20 个字符的用于存放人名的字符串
tel_num label byte
maxtlen db 8
tellen db ?
telfld db 9 dup(?) ;定义 8 个字符的用于存放电话号码的字符串
tel_tab db 50 dup(20 dup(' '), 8 dup(' ')) ;定义可存放 50 项纪录的电话号码表
tel_sav db 28 dup(?), 13, 10, '$'
list db 20 dup(' '), 8 dup(' '), 0dh, 0ah, '$' ;定义电话号码表的每个条目
string1 db 'Input name:', '$'
string2 db 'Input a telphone number:', '$'
string3 db 'Do you want a telephone number?(Y/N)', '$'
string4 db 'name?', '$'
string5 db 'Would you like to input a telephone list?(Y/N)', '$'
string6 db 'The Tel_Lab is empty.', '$'
string7 db 'There is no list fitting.', '$'
string8 db 'name tel. ', '$'
string9 db 'Do you want a Tel_Lab?(Y/N)', '$'
endadd dw ?
swapped db 0
tel_count db 0 ;计算电话号码表中的条目数量
datarea ends
prognam segment
main proc far ;主程序
assume cs: prognam, ds: datarea, es: datarea
start:
push ds
sub ax, ax
push ax
mov ax, datarea
mov ds, ax
mov es, ax
cld
lea di, tel_tab ;将电话号码表传给目的变址寄存器
cho_inp: ;进行选择,是否输入条目
mov ah, 09
lea dx, string5
int 21h ;输出“Would you like to in put a telephone list?(Y/N)”
mov ah, 01
int 21h ;输入,进行选择
mov dl, 4eh
cmp al, dl
je sort_n ;若输入为 N,则跳转至 sort_n,进行电话号码表的排序
mov dl, 6eh
cmp al, dl
je sort_n ;若输入为 n,则同上
mov dl, 59h
cmp al, dl
je input_n ;若输入为 Y,则跳转至 input_n,进行电话号码条目的输入
mov dl, 79h
cmp al, dl
je input_n ;若输入为 y,则同上
mov ah, 02
mov dx, 0dh
int 21h
mov dx, 0ah
int 21h
jmp cho_inp ;若输入不为 Y(y)/N(n),则返回 cho_inp,重新进行选择
input_n: ;输入人名,并保存
mov ah, 02
mov dx, 0dh
int 21h
mov dx, 0ah
int 21h
mov ah, 09
lea dx, string1
int 21h ;输出“Input name:”
call input_name ;调用子程序 input_name 接收人名
call stor_name ;调用子程序 stor_name 把人名存入电话号码表 tel_tab 中
input_p: ;输入电话号码,并保存
lea dx,string2
mov ah, 09
int 21h ;输出“Input a telephone number:”
call inphone ;调用子程序 inphone 接收电话号码,并把它存入电话号码表 tel_tab 中
jmp cho_inp ;跳转至 cho_inp,按提示选择是否继续输入条目
sort_n: ;对电话号码表进行排序
mov ah, 02
mov dx, 0dh
int 21h
mov dx, 0ah
int 21h
call name_sort ;调用子程序 name_sort,对电话号码表按人名排序
print_lab: ;输出整个电话号码表
lea dx, string9
剩余10页未读,继续阅读
资源评论
裤子
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功