- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编——电话簿实验
实验4电话簿
一、实验目的及要求
(1)实验目的
学习用汇编语言设计与编写子程序(2)实验要求
要求程序建立一个可存放50项的电话号码表,每项包括人名(20个字符)及电话号码(8个字符)两部分;
程序可接受输入人名及相应的电话号码,并把它们加入电话号码表中;凡有新的输入后,程序应按人名对电话号码表重新排序;
程序可接受需要查找电话号码的人名,并从电话号码表中查出其电话号码,再在屏幕上以如下格式显示出来。
nametel. 二、所用仪器、设备
Masm for windows集成实验环境 三、实验方法与步骤
(1) 实验思路:设计一个分支循环,依次判断字符的类型并计数,直到将所有字符判断完毕后推出循
(2)部分源代码datarea segment
tel_namelabel bytemaxnlendb20namelendb?
nameflddb21 dup(?) ;定义20个字符的用于存放人名的字符串tel_numlabel bytemaxtlendb8tellendb?
telflddb9 dup(?) ;定义8个字符的用于存放电话号码的字符串
tel_tabdb50 dup(20 dup(‘ ‘), 8 dup(‘ ‘)) ;定义可存放50项纪录的电话号码表
tel_savdb28 dup(?), 13, 10, ‘$’
listdb20 dup(‘ ‘), 8 dup(‘ ‘), 0dh, 0ah, ‘$’ ;定义电话号码表的每个条目
string1db’Input name:’, ‘$’
string2db’Input a telphone number:’, ‘$’
string3db’Do you want a telephone number?(Y/N)’, ‘$’string4db’name?’, ‘$’
string5db’Would you like to input a telephone list?(Y/N)’, ‘$’string6db’The Tel_Lab is empty.’, ‘$’string7db’There is no list fitting.’, ‘$’
string8db’nametel.’, ‘$’string9db’Do you want a Tel_Lab?(Y/N)’, ‘$’endadddw?swappeddb0
tel_countdb0 ;计算电话号码表中的条目数量 datarea ends prognam segment start:
mainprocfar ;主程序
assume cs: prognam, ds: datarea, es: datareapushdssubax, axpushax
movax, datareamovds, axmoves, axcld
leadi, tel_tab ;将电话号码表传给目的变址寄存器 cho_inp: ;进行选择,是否输入条目movah, 09
leadx, string5
int21h ;输出”Would you like to in put a telephone list?(Y/N)”movah, 01
int21h ;输入,进行选择movdl, 4ehcmpal, dl
jesort_n ;若输入为N,则跳转至sort_n,进行电话号码表的排序movdl, 6ehcmpal, dl
jesort_n ;若输入为n,则同上movdl, 59hcmpal, dl
jeinput_n ;若输入为Y,则跳转至input_n,进行电话号码条目的输入movdl, 79hcmpal, dl
jeinput_n ;若输入为y,则同上movah, 02movdx, 0dhint21hmovdx, 0ahint21h
jmpcho_inp ;若输入不为Y(y)/N(n),则返回cho_inp,重新进行选择 input_n: ;输入人名,并保存movah, 02movdx, 0dhint21hmovdx, 0ahint21hmovah, 09
leadx, string1
int21h ;输出”Input name:”
callinput_name ;调用子程序input_name接收人名
callstor_name ;调用子程序stor_name把人名存入电话号码表tel_tab中 input_p: ;输入电话号码,并保存leadx,string2movah, 09
int21h ;输出”Input a telephone number:”
callinphone ;调用子程序inphone接收电话号码,并把它存入电话号码表tel_tab中
jmpcho_inp ;跳转至cho_inp,按提示选
文档评论(0)