汇编课程设计-查找电话号码_第1页
汇编课程设计-查找电话号码_第2页
汇编课程设计-查找电话号码_第3页
汇编课程设计-查找电话号码_第4页
汇编课程设计-查找电话号码_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、查找电话号码1.1要求程序建立一个可存放50项的电话号码表,每项包括人名(20个字符)及电话 号码(8个字符)两部分;1. 2程序可接收输入人名及相应的电话号码,并把它们加入电话号码表中;1. 3凡有新的输入后,程序应按人名对电话号码表重新排序;1.4程序可接收需要查找电话号码的人名,并从电话号码表中查出其电话号码,再在屏幕上以如下的格式显示出来:tel*name*1源程序data segmenttel_tabdb1500 dup('')tel_tab_nodb0line1db,g hadbplease input a to add $'sdbplease input

2、s to search $'ddbplease input "d to display all$,0dbinput other words to exit $'line2db' 0 'inputndb'please inputthe nameinputpdb'please inputthe phone numbercmddb2,0,2 dup(?)printfdbnametel $'putnamedb21,0,21 dup(,')notfounddb'the record you searched is not

3、exsit $'yondb'n,;用于判断是否找到所输入的名字data endscode segmentmainprocassumefarcs:code, ds:datastart:movax, datamovds, axaddnew:;添加新的记录leadx,inputn;输出字符movah, 09hint21hcallstor_name;输入名字并保存到表中callcrlfleadx,inputpmovah, 09hint21hcallinphone;输入电话并保存到表中inctel_tab_nocallname_sort;将输入的名字和电话按名字排序again:callc

4、rlf;回车并换行模块leadx,line1;输出菜单movah, 09hi ntleamovintcallleamovintcallleamovintcallleamovintcallleamovint菜单结束leamovint21hdx, aah, 09h21hcrlfdx, sah, 09h21hcrlfdx, dah, 09h21hcrlfdx,0ah, 09h21hcrlfdx,line2ah, 09h21hdx, cmd ;输入命令ah, oah21hmovbx, dxmovdx, bx+2;让用户选择下一步所要进行的动作anddx, ooffhcmpdl, 41h;当用户输入a时

5、跳到添加模块jzaddnewcmpdl, 53h;当用户输入s时跳到查找模块jzsearchcmpdl, 44h;当用户输入d时跳到显示模块jzdisplayalljmpcode_exitleadx,printfmovah, 09hint21hcallcrlfcallprint_all;排序后,打印所有已记录的名字和电话号码jmpagainleadx,inputnmovah, 09hint21hmovcx, 20movsi,0movputnamesi+2,''incsiloopsetspaceleadx,putnamedisplayall:search:setspace:mov

6、ah, oahi nt21hxorbx, bxmovbl, putname1movputnamebx+2,'$'callsearch_name ;查找并打印所有符合的名字及电话号码jmpagaincode_exit:movah, 4chint21hstor_name procnear;输入名字并保存到表中moval, tel_tab_nomovbl, 36mulblmovsi, axcallcrlfmovtel_tabsi+0,21;输入最大字符个数leadx,tel_tabsi+o;取输入数据存储的地址movah, oah;输入中断int21hxorbx, bxmovbl,t

7、el_tabsi+1;有效字符个数,即实际输入个movtel_tabsi+bx+2,'$';末尾添加结束符jmpstor_exit;callcrlf;movah, 09h;leadx,tel_tabsi+2;int21h;callcrlf;movah, 02h;movdl,tel_tabsi+2;int21hstor_exit:retstornameendpinphoneprocnear;输入电话并保存到表中moval, tel_tab_nomovbl, 36mulblmovsi, axcallcrlfmovtel_tabsi+24,9leadx, tel_tabsi+24mo

8、vah, oahint21hxorbx, bxmovbl,tel_tabsi+25movtel_tabsi+bx+26,'$'jmpinph_exit;callcrlf;movah, 09h;leadx,tel_tabsi+26;int21h;call;mov;mov;intinph_exit:crlfah, 02hdl,tel_tabsi+2621hretinphone endpname_sort procnearxorex, cx;将输入的名字和电话按名字排序movcl, tel_tab_nodeccxcmpcx, 0jzsort_exit_jmpjmploop1sort_

9、exit_jmp:jmpsort_exitl00p1: movdi, cxmovbx, 0loop2: moval, tel_tabbx+2;比较第一个字符cmpal, tel_tabbx+38jlcotinue;小于,则不变,跳转jzequare;等于,继续比较下一个字符jmpgreat;大于,则交换equare:movbp, cx;比较剩下的字符movcx, 20;剩下字符个数movdx, bxnext: incbxmoval,tel_tabbx+2cmpal,tel_tabbx+38jlnochangejgychangeloopnextjmpnochangeychange:movcx,

10、bpmovbx, dxgreat:movbp, cx;存放ex的值movcx, 36;设置计数器movsi,bx;设置传输首地址偏移地址xchange:moval, tel_tabsi;值放缓冲区xchgal, tel_tabsi+36;目标与缓冲区数据交换movtel_tabs叮,al;传回原地址incsi;指针下移loopxchange;循环直至复制完成movcx, bp;返回计数器值jmpcotinuenochange:movcx, bpmovbx, dxcotinue:addbx, 36;跳至下一个looploop2movcx, dilooploop1sort_exit:retname

11、_sortendpprint_allprocnear;排序后,打印所有记录的名字和电话号码xorex, exmovcl, tel_tab_n0;设置计数器movdl, 0print_next:;寻址moval, dlmovbl, 36mulblmovsi, axmovbl, dl;输出movah, 09hleadx,tel_tabsi+2int21hmovbp, cxxorex, cxmovcl, 25subcl,tel_tabsi+1space_in:movah, 02hmovdl,,int21hloopspace_inmovah, 09hleadx,tel_tabsi+26int21hca

12、llcrlfmovdl, blincdlmovcx, bploopprint_nextretprint all endpsearch_name procnear;查找并打印所有符合的名字及电话号码movyon,' n'xorcx, cxmovcl, tel_tab_nomovbx, 0n_nmcmp:movsi,0movdx, cxmovcx, 20namecmp:moval, putnamesi+2cmpal, tel_tabbx+si+2jnznot_equareincsiloopnamecmpjmpname_equarenot equare:movcx, dxaddbx,

13、 36loopn_nmcmpjmpname_match_exit1name_equare:movdi,dxmoval, yoncmpal,' y'jzcallmovleaintmovlop:callmovleaintmovxormovsubspace_in2:movmovintloopmovleaintmovjmplopcrlfah, 09hdx,printf21hyon,' y,crlfah, 09hdx,tel_tabbx+221hbp, cxcx, cxcl, 25cl,tel_tabbx+1ah, 02hdlj '21hspace_in2ah, 09hdx,tel_tabbx+2621hdx,dinot equarename_match_exit1moval, yoncmp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论