汇编语言课程设计汇本01587

汇编语言课程设计汇本01587

ID:35108382

大小:93.00 KB

页数:10页

时间:2019-03-18

汇编语言课程设计汇本01587_第1页
汇编语言课程设计汇本01587_第2页
汇编语言课程设计汇本01587_第3页
汇编语言课程设计汇本01587_第4页
汇编语言课程设计汇本01587_第5页
资源描述:

《汇编语言课程设计汇本01587》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《汇编语言程序设计》课程设计报告题目:电话号码本班级:10050542学号:41姓名:韩楦畴一课程设计题目:电话号码本功能描述: 1 程序能够建立一个可存放30条以上记录的电话号码本; 2 程序能够对记录进行增加、删除、修改操作;3 记录字段包含序号、姓名、电话、单位内容; 4 能够通过姓名、或电话查询记录并显示查询结果;5退出;二、实验目的:1.进一步了解和熟悉8086汇编语言的指令及其用法。2.进一步学习汇编语言源程序的编写方法和技巧以及运行过程。3.掌握汇编语言调试(在DEBUG状态下)的过程。三、分析课题的基本内容及目的此课题要求用汇编语言写一个可存放30

2、条以上记录的电话号码本的程序,其中每一个记录应该包括四个选项,即序号,电话号码,姓名用地址。对程序中的所有记录能够进行的操作有增加一条记录,删除一条记录,查询一条记录,修改一条记录。增加一条记录就是把记录插入到程序中所有记录的最后面,还要把记录的总个数加1。删除一记录要先通过查询算法,查找到删除记录的位置,然后从下一条记录开始,逐个往前面覆盖。查询一条记录有两种方法,通过电话号码或姓名查询,若没有找到所要找的记录,则返回,并告之该记录不存在。修改一条记录也需要先查找该记录,然后进行修改,即重新写入。四、程序流程图1.总体流程图:程序开始输入一个字符程序结束al=‘

3、i’?al=‘d’?al=’c’?al=’s’?al=’e’?增加一条记录删除一条记录查询一条记录修改一条记录输入错误NNNNYYYYYNYYYYN2.插入算法的程序流程图如下:开始把要插入的记录(电话、姓名、地址)输入缓冲区中插入到记录的尾部结束记录数const++内存单元是否为满?YNN五、设计过程中遇到的问题及解决方法虽然插入算法的流程图比较简单,但也遇到了不少的问题。1.程序开始运行时,要求用户输入字母以选择要进行的操作。可以用一段选择程序来实现:w:movah,7;从键盘输入,但不回显int21hcmpal,'i';将输入值与字母i作比较jnzw1;不相

4、等,转向w1与下一个字母比较callinsert;相等,则执行插入操作jmpw;重新输入进行操作w1:……2.插入的记录中,姓名和地址的长度不一,这样就给记录的查询、删除及修改带来了很大的麻烦。这里,我预先定义了一个数组array来设定记录中电话号码,姓名和地址的长度:arraydb51dup(?,16dup(?),20dup(?),30dup(?),0dh,0ah,'$')并且在输入子程序中,运用了以下程序将剩余的单元用空格符填满:moval,20h;用空格填满剩余的单元subch,chmovcl,numlen;实际输入的电话号码的长度leadi,numfld;

5、输入的电话号码单元的首地址adddi,cxnegcx;求补addcx,16;cx中为剩余的字节数cld;letdf=0repstosb;把al中的内容(空格)存入di指向的内存单元中对于姓名和地址也是一样。如此,每一条记录便有70个字节(包括空格符),这样不仅给程序的查询、删除及修改操作带来了方便,而且也使输出时记录的排序较为美观。3.插入一条记录时,要把记录插入到末尾,为了能够随时得到末尾的偏移地址,我定义了一个字变量point,用来保存所有记录的的字节数,这样就可以通过代码:pointdw0;指向记录尾……leadi,arrayadddi,point;把arr

6、ay中要插入位置的偏移地址赋给di很容易的找到末尾,即要插入记录的位置。再由movsb指令将记录插入末尾(调用stors子程序):movcl,16leasi,numfld;输入的电话号码的首地址cldrepmovsbmovcl,20leasi,namefld;输入的姓名的首地址cldrepmovsbmovcl,30leasi,telfld;输入的地址的首地址cldrepmovsb还有一点,之所以将上述代码单独写为一个子程序,也是为了后面删除和修改记录的方便。删除时用后面的记录覆盖掉待删除的记录可以调用这个子程序来实现,修改记录时,重新写入记录,也可以调用此子程序来

7、实现对原记录的覆盖。4.程序的输出应该尽量美观,在此定义了一个分隔符:separatedb'*******************************************',0dh,0ah,'$'将各个操作的结果分隔开来。还专门将定义为一个子程序,需要的时候可以直接调用,很方便:displyprocnear;显示输出movah,9int21hretdisplyendp六、课程设计体会:汇编语言是一门偏硬件的低级语言,学习起来是有一定难度的。上个学期的汇编课程,我感觉自己有很多都没有听懂,还有很多的指令不会用,通过这一次的课程设计,不仅让我巩固了上学期所学的

8、汇编语言的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。