- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西安交大电气第二次微原实验报告
微型计算机原理与接口技术西安交大实验二—循环程序的设计一、实验目的1、掌握提示信息的使用方法和键盘键入信息的用法2、掌握循环程序的设计方法二、实验内容编写程序,从键盘分别键入两个字符串,进行比较,若相同,则显示“MATCH”,否则,显示“NO MATCH”。三、实验原理强迫cpu重复执行一指令序列的程序结构是循环程序循环程序结构分四部分1、初始化部分2、循环处理部分3、循环控制部分4、结束部分四、实验程序代码CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDM;实现回车换行的宏指令定义DATA SEGMENTMESS1 DBINPUT STRING1:,0DH,0AH,$MESS2 DBINPUT STRING2:,0DH,0AH,$MESS3 DBNO MATCH,0DH,0AH,$MESS4 DBMATCH,0DH,0AH,$MAXLEN1 DB 81;定义字符串1允许的最大长度80ACTLEN1 DB ?;字符串1实际输入长度单元STRING1 DB 81 DUP(?);字符缓冲区MAXLEN2 DB 81;字符串2允许最大长度ACTLEN2 DB ?;字符串2实际输入长度单元STRING2 DB 81 DUP(?);字符缓冲区DATA ENDSSTACK SEGMENT PARA STACK STACKSTA DB 50 DUP(?)TOP EQU LENGTH STASTACK ENDS;堆栈段定义CODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AX;数据段寄存器赋值MOV ES,AX;附加段寄存器赋值MOV AX,STACKMOV SS,AX;堆栈段段寄存器赋值MOV SP,TOPMOV DX,OFFSET MESS1MOV AH,09HINT 21H;提示信息1MOV AH,0AHMOV DX,OFFSET MAXLEN1INT 21H;接收字符串1CRLFMOV DX,OFFSET MESS2MOV AH,09HINT 21H;提示信息2MOV AH,0AHMOV DX,OFFSET MAXLEN2INT 21H;接收字符串2CRLFMOV SI,OFFSET ACTLEN1;字符串1的首地址送SIMOV BX,OFFSET ACTLEN2;字符串2的首地址送BXMOV AL,[SI];[SI]送ALCMP AL,[BX];两串实际长度比较JNE NOMA;若长度不相等跳至NOMATCHMOV CX,[SI];若长度相等,长度赋值给CXAND CX,0FH;[SI]一个字节而CX两个字节,对位循环部分:NEXT:INC SI;SI+1送SIINC BX;BX+1送BXMOV AL,[SI];[SI]送ALCMP AL,[BX]JNE NOMADEC CX;CX减1CMP CX,0;检验是否完成比较JNE NEXTMOV AH,09HMOV DX,OFFSET MESS4INT 21HJMP DENDNOMA:MOV AH,09HMOV DX,OFFSET MESS3INT 21HDEND:MOV AX,4C00HINT 21HCODE ENDSEND START五、实验调试过程先建立(edit)third.asm文件,在经过静态检查无误后,然后建立(masm)汇编文件(third.obj),最后连接(link)生成可执行文件(third.exe)。之后进入debug进行调试,调试过程如下:Link的过程:Debug的过程:用u命令对代码进行反汇编:六、实验结果、数据以及现象七.实验问题与思考问题有很多,比如MOV CX,[SI];若长度相等,长度赋值给CXAND CX,0FH;[SI]一个字节而CX两个字节,对位这一步,若是没有将cx与0fh相与,则无法运行程序。所以在编写汇编语言时,要注意存储器地址的分配问题,以及各寄存器以及数据类型的位数问题。八、思考题1.总结伪指令与子程序的异同伪指令在汇编后没有相应的机器代码,只是在汇编过程中由汇编器进行处理,用来指示汇编后数据存储分配、变量赋值、逻辑段的分段以及源程序结束等信息,而子程序是以过程的形式定义的,并设计有相应的伪指令和程序结构。2.指出用DEBUG命令跟踪循环程序时,使用G、T及P命令中哪几个?并简要地予以总结在用debug命令跟踪循环程序时,应使用t或p,而不能使用g,因为t,p才能进入循环体内执行指令。3.输入两个字符串,若第一个字符串包含在第二个字符串内,则显示‘match’,否则显示‘no match’。CRLF MACROMOV AH,02HMOV DL,0DHI
文档评论(0)