汇编语言程序设计 微机实验报告.doc

汇编语言程序设计 微机实验报告.doc

ID:56726029

大小:137.50 KB

页数:20页

时间:2020-07-06

汇编语言程序设计 微机实验报告.doc_第1页
汇编语言程序设计 微机实验报告.doc_第2页
汇编语言程序设计 微机实验报告.doc_第3页
汇编语言程序设计 微机实验报告.doc_第4页
汇编语言程序设计 微机实验报告.doc_第5页
资源描述:

《汇编语言程序设计 微机实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、微机实验报告第一部分:8086汇编语言程序设计一、实验目的通过上机练习,初步掌握8086的指令系统,熟悉8086汇编语言程序的编写格式,学会编写简单的汇编语言应用程序,初步学会使用DEBUG调试工具。二、实验题目(一)编程实现从字符串中查找特定的字符,记录特定字符的个数,并将结果在屏幕上显示,同时退出并返回DOS。(要求字符串从键盘上输入)1、流程图2、实验程序及注释DATASEGMENTBUFSIZEDB20;数据段ACTCHARDB?;定义字符串CHARTEXTDB20DUP(?);给输入字符分配内存DB'

2、$'CNTDB0;给计数器分配内存STRING1DB'PLEASEINPUTTHESTRING:','$'STRING2DB0AH,0DH,'INPUTTHEWORDYOUWANTTOCHECK:','$'STRING3DB0AH,0DH,'THENUMBEROFTHEWORDIS:','$'DATAENDS;数据段结束COSEGSEGMENT;代码段ASSUMECS:COSEG,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETSTRING1;显示提示语:请输入字符串MOV

3、AH,09H;输出字符串STRING1INT21HMOVDX,OFFSETBUFSIZE;从键盘输入字符串存入BUFSIZEMOVAH,0AH;并送显INT21HMOVDX,OFFSETSTRING2;显示提示语:想查询的字符是MOVAH,09H;输出字符串STRING2INT21HMOVAH,01H;从键盘上输入字符到AL中并送显INT21HMOVBX,OFFSETCHARTEXT;将字符串首地址存入BXMOVCL,ACTCHAR;置循环次数CX=字符串长度XORCH,CHLP1:CMPAL,[BX];字符串

4、从头开始与键入字符AL比较JZLP2;相等则转入LP2INCBX;指针指向字符串下一个字符DECCX;循环次数减一JNZLP1;若还有未比较的字符,继续循环LP1JMPFINI;若全部比较完毕,跳转FINILP2:INCCNT;计数器增一INCBX;指针指向字符串下一个字符DECCX;循环次数减一JNZLP1;若还有未比较的字符,跳至LP1FINI:MOVDX,OFFSETSTRING3;显示提示语:所查询的字符个数:MOVAH,09HINT21HMOVAL,CNT;将计数器的值送ALAAM;将此值转换成非压缩

5、BCD码ADDAH,30H;将BCD码转换为ASCⅡ码MOVDL,AH;高位送显MOVAH,02HINT21HMOVAL,CNT;再将计数器的值送ALAAMADDAL,30H;将BCD码转换为ASCⅡ码MOVDL,AL;低位送显MOVAH,02HINT21HMOVAH,4CH;结束INT21HCOSEGENDS;代码段结束ENDSTART;程序结束3、运行结果PLEASEINPUTTHESTRING(先输入字符串):ASDFAAD↙INPUTTHEWORDYOUWANTTOCHECK(输入待查找字符):A↙TH

6、ENUMBEROFTHEWORDIS(数量为):3↙PLEASEINPUTTHESTRING(先输入字符串):ASDFAAD↙INPUTTHEWORDYOUWANTTOCHECK(输入待查找字符):9↙THENUMBEROFTHEWORDIS(数量为):0↙PLEASEINPUTTHESTRING(先输入字符串):ASDFAAD↙INPUTTHEWORDYOUWANTTOCHECK(输入待查找字符):S↙THENUMBEROFTHEWORDIS(数量为):1↙4、程序改进循环次数的改进原来的程序:MOVCX,1

7、9改进原因:此程序表明无论输入的字符串多长,即使没有达到限定的最大字符串的长度,也要循环19次。改进后的程序:MOVCL,ACTCHARXORCH,CH改进结果:ACTCHAR即所输入的字符串的实际长度,因此,实际为置循环次数CX=字符串长度,这样可以提高运行速度删除多余语句原来的程序:LP1:CMPAL,[BX];将字符与字符串逐个比较JZLP2;相等则转入LP2INCBX;指针指向字符串下一个字符DECCX;循环次数减一CMPCX,0000H;若还有未比较的字符JNZLP1;继续循环LP1JMPFINI;若

8、全部比较完毕,跳转FINILP2:INCCNT;计数器增一INCBX;指针指向字符串下一个字符DECCX;循环次数减一CMPCX,0000H;若还有未比较的字符JNZLP1;跳转LP1改进原因:DEC为自减一,若减为0,它会自动影响其标志位ZF,所以不用把CX再与00H比较,判断CX是否为零。改进后的程序:(删除CMPCX,0000H)LP1:CMPAL,[BX];字符串从头开始与键入

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

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

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