汇编语言程序设计实验教程第二章实验报告

汇编语言程序设计实验教程第二章实验报告

ID:1248035

大小:254.53 KB

页数:25页

时间:2017-11-09

汇编语言程序设计实验教程第二章实验报告_第1页
汇编语言程序设计实验教程第二章实验报告_第2页
汇编语言程序设计实验教程第二章实验报告_第3页
汇编语言程序设计实验教程第二章实验报告_第4页
汇编语言程序设计实验教程第二章实验报告_第5页
资源描述:

《汇编语言程序设计实验教程第二章实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、汇编语言程序设计实验教程第二章实验报告实验2.1用表格形式显示字符1.题目:用表格形式显示ASCII字符SMASCII2.实验要求:按15行*16列的表格形式显示ASCII码为10H-100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII为0)隔开。3.提示:(1)显示每个字符可使用功能号为02的显示输出功能调用,使用方法如下:movah,02hmovdl,输出字符的ASCII码int21h(2)显示空白符时,用其ASCII码0置入dl寄存器。每行结束时,用显示回车(ASCII为0d

2、h)和换行符(ASCII为0ah)来结束本行并开始下一行。(3)由于逐个显示相继的ASCII字符时,需要保存并不断修改dl寄存器的内容,而显示空白、回车、换行符时也需要使用dl寄存器,为此可使用堆栈来保存相继的ASCII字符。具体做法是:在显示空白或回车、换行符前用指令pushdx把dl的内容保存到堆栈中去。在显示空白或回车、换行符后用指令popdx恢复dl寄存器的原始内容。4.程序清单:codesegmentassumecs:codestart:movdx,0010hnext:movcx,10hloop1:movah,02hint21hincdxpushdxmovdl,

3、0int21hpopdxlooploop1pushdxmovdl,0ahint21hmovdl,0dhint21hpopdxcmpdx,100hjbnextmovah,4chint21hcodeendsendstart5.运行结果如下:6.实验总结:通过本次实验我深刻的知道用汇编语言编译程序的方法,掌握了如何合理的利用各个寄存器进行程序的控制操作,初步了解到循环程序的控制方法,以及dos中断调用的基本要领对学习汇编语言有了非常好的帮助作用!汇编语言实验二查找匹配字符串一、目的查找匹配字符串SEARCH二、实验内容程序接收用户键入的一个关键字以及一个句子。如果句子中不包含关

4、键字则显示‘NOmatch!’;如果句子中包含关键字则显示‘MATCH’,且把该字在句子中的位置用十六进制数显示出来。流程图NYYY输入关键字结束关键字长度=0输入句子句子长度<关键字长度Y保存关键字长度到cx,cx入栈,保存总循环次数(句子长度-关键字长度+1)到al,将句子的首地址放进bx(作为基址寄存器)si=di=0(变址寄存器)开始比较[bx+di]与[si]是否相等si+1,di+1,cx-1(同时指向下一个字符)YNbx+1(句子指向下一个字符)cx出栈,再入栈,si,di清零,al-1cx是否为0N匹配完成,调用子程序输出al是否为0不匹配,输出开始三、设

5、计和编码DATASEGMENTmess1DB'Enterkeyword:','$'mess2DB'EnterSentence:','$'mess3DB'Matchatlocation:','$'mess4DB'NOTMATCH.',13,10,'$'mess5DB'Hifthesentence',13,10,'$'changeDB13,10,'$'stoknin1labelbytemax1db10act1db?stokn1db10dup(?)stoknin2labelbytemax2db50act2db?stokn2db50dup(?)DATAENDSSTACKSSEGM

6、ENT;此处输入堆栈段代码STACKSENDSCODESEGMENT;*************************************代码段mainprocfarassumecs:code,ds:data,es:dataSTART:pushdssubAX,AXsubBX,BXsubDI,DIsubSI,SIpushAX;为返回dos并清空后面要用到的寄存器MOVAX,DATAMOVDS,AXLEADX,mess1MOVah,09INT21h;输出EnterkeywordLEADX,stoknin1MOVah,0ah;用21号中段的0ah号功能获取关键字INT21

7、hcmpact1,0jeexit;如果为空直接退出程序a10:;********************************输入Sentence并判断LEADX,changeMOVah,09INT21h;输出回程,换行LEADX,mess2MOVah,09INT21h;输出EnterSentence:LEADX,stoknin2MOVah,0ahINT21h;用21号中段的0ah号功能获取句子MOVAL,act1CBWMOVCX,AX;保存关键字长度到cxPUSHCX;cx入栈MOVAL,act2cmpAL,0jea50;

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

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

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