版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告课程名称:微机原理实验(软件)实验名称:实验1两个多位十进制数相加班级学号姓名指导教师李北明实验一两个多位十进制数相加实验实验目的1、学习数据传送和算术运算指令的用法。2、熟悉在pc机上建立、汇编、链接、调试和运行汇编语言程序的过程。实验内容1、将两个五位十进制相加。要求加数和被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。2,改变程序手动输入2个数相加实验程序原程序CRLFMACRO;建立宏指令CRLFMOVDL,0DHMOVAH,02HINT21HMOVDL,0AHMOVAH,02HINT21HENDMDATASEGMENTDATA1DB32H,33H,34H,35H,36H;第一个数据(作为被加数)DATA2DB31H,32H,33H,34H,34H;第二个数据(作为加数)DATAENDSSTACKSEGMENT;堆栈段STADB20DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVSI,OFFSETDATA2MOVBX,05CALLDISPL;显示被加数CRLFMOVSI,OFFSETDATA1MOVBX,05CALLDISPL;显示加数CRLFMOVDI,OFFSETDATA2CALLADDA;加法运算MOVSI,OFFSETDATA1MOVBX,05;显示结果CALLDISPLCRLFMOVAX,4C00HINT21HDISPLPROCNEAR;显示子功能DS1:MOVAH,02MOVDL,[SI+BX-1];显示字符串中一字符INT21HDECBX;修改偏移量JNZDS1RETDISPLENDPADDAPROCNEARMOVDX,SIMOVBP,DIMOVBX,05AD1:SUBBYTEPTR[SI+BX-1],30HSUBBYTEPTR[DI+BX-1],30HDECBXJNZAD1MOVSI,DXMOVDI,BPMOVCX,05;包括进位,共五位CLC;清位进位AD2:MOVAL,[SI]MOVBL,[DI]ADCAL,BL;带进位相加AAA;非组合BCD码的加法调整MOV[SI],AL;结果送被加数区INCSIINCDI;指向下一位LOOPAD2;MOVSI,DXMOVDI,BPMOVBX,05AD3:ADDBYTEPTR[SI+BX-1],30HADDBYTEPTR[DI+BX-1],30HDECBXJNZAD3RETADDAENDPCODEENDSENDSTART手动输入相加CRLFMACROMOVDL,0DHMOVAH,02HINT21HMOVDL,0AHMOVAH,02HINT21HENDMDATASEGMENTDATA1DB20DUP(?)DATA2DB20DUP(?)DATAENDSSTACKSEGMENTSTADB20DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVBX,05MOVSI,OFFSETDATA1CALLINPUTCRLFMOVBX,05MOVSI,OFFSETDATA2CALLINPUTCRLFCRLFMOVSI,OFFSETDATA2MOVBX,06CALLDISPLCRLFMOVSI,OFFSETDATA1MOVBX,06CALLDISPLCRLFMOVDI,OFFSETDATA2CALLADDAMOVSI,OFFSETDATA1MOVBX,06CALLDISPLCRLFMOVAX,4C00HINT21HDISPLPROCNEARDSI:MOVAH,02MOVDL,[SI+BX-1]INT21HDECBXJNZDSIRETDISPLENDPADDAPROCNEARMOVDX,SIMOVBP,DIMOVBX,06AD1:SUBBYTEPTR[SI+BX-1],30HSUBBYTEPTR[DI+BX-1],30HDECBXJNZAD1MOVSI,DXMOVDI,BPMOVCX,06CLCAD2:MOVAL,[SI]MOVBL,[DI]ADCAL,BLAAAMOV[SI],ALINCSIINCDILOOPAD2MOVSI,DXMOVDI,BPMOVBX,06AD3:ADDBYTEPTR[SI+BX-1],30HADDBYTEPTR[DI+BX-1],30HDECBXJNEAD3RETINPUTPROCNEARIN1:MOVAH,01INT21HMOV[SI],ALINCSIDECBXJNZIN1RETINPUTENDPADDAENDPCODEENDSENDSTART四实验结果图二修改后的程序9999+8888=18887手动输入2个数相加的程序修改后的程序9999+8888=18887手动输入2个数相加的程序88888+99999=188887图二为手动输入88888与99999,结果为18887,符合事实Bug与修复在改变实验程序后,手动输入出现故障,后经检查发现语句出现遗漏,改正后,运行正常。实验报告课程名称:微机原理实验(软件)实验名称:实验2两个数相乘实验班级20120831学号2012083118姓名指导教师李北明实验二两个数相乘实验实验目的掌握乘法指令和循环指令的用法。实验内容实现十进制数的乘法。被乘数和乘数均以ASCII码形式存放在内存中,实现两位十进制数乘五位十进制数,乘数和被乘数以及结果均在屏幕上显示出来。实验程序实现五位数乘两位的程序如下(更改部分标注在后面):原程序CRLFMACRO;回车的宏命令MOVDL,0DHMOVAH,02HINT21HMOVDL,0AHMOVAH,02HINT21HENDMDATASEGMENTDATA1DB30H,30H,30H,30H,30H;五位乘数DATA2DB30H;两位被乘数的十位DATA3DB00H,00H,00H,00H,00H,00H,00H;五位乘数与十位被乘数乘积存放单元DATA4DB30H;两位被乘数的个位DATA5DB00H,00H,00H,00H,00H,00H,00H;五位乘数与十位被乘数乘积存放单元RESULTDB7DUP(00H);结果存放单元DATAENDSSTACKSEGMENTSTADB20DUP(?)TOPEQU$-STASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVSI,OFFSETDATA1+4;输入五位乘数并显示MOVCX,05LOOPP:MOVAH,1INT21HMOV[SI],ALDECSILOOPLOOPPCRLFMOVAH,1INT21HMOVSI,OFFSETDATA2;键入被乘数十位MOV[SI],ALMOVAH,1INT21HMOVSI,OFFSETDATA4;键入被乘数十位MOV[SI],ALCRLFMOVSI,OFFSETDATA2;五位乘数与被乘数十位相乘结果右移一位存放DATA3中MOVBL,[SI]ANDBL,00001111BMOVSI,OFFSETDATA1MOVDI,OFFSETDATA3+1MOVCX,05LOOP1:MOVAL,[SI]ANDAL,00001111BINCSIMULBLAAMADDAL,[DI]AAAMOV[DI],ALINCDIMOV[DI],AHLOOPLOOP1MOVSI,OFFSETDATA4;五位乘数与被乘数个位相乘结果存放在DATA5中MOVBL,[SI]ANDBL,00001111BMOVSI,OFFSETDATA1MOVDI,OFFSETDATA5MOVCX,05LOOP2:MOVAL,[SI]ANDAL,00001111BINCSIMULBLAAMADDAL,[DI]AAAMOV[DI],ALINCDIMOV[DI],AHLOOPLOOP2MOVSI,OFFSETDATA3MOVDI,OFFSETDATA5CALLADDAMOVBX,07CALLDISPLLCRLFMOVAX,4C00HINT21HDISPLLPROCNEAR;结果显示子程序DSI:MOVAH,02MOVDL,[SI+BX-1]INT21HDECBXJNZDSIRETDISPLLENDPADDAPROCNEAR;将DATA3和DATA5相加并化成ASCII码MOVDX,SIMOVBP,DIMOVCX,07CLCAD2:MOVAL,[SI]MOVBL,[DI]ADCAL,BLAAAMOV[SI],ALINCSIINCDILOOPAD2MOVSI,DXMOVDI,BPMOVBX,7AD3:ADDBYTEPTR[SI+BX-1],30HADDBYTEPTR[DI+BX-1],30HDECBXJNZAD3RETADDAENDPCODEENDSENDSTART手动输入五位数乘两位数CRLFMACROMOVDL,0DHMOVAH,02HINT21HMOVDL,0AHMOVAH,02HINT21HENDMDATASEGMENTDATA1DB5DUP(?);加数DATA2DB2DUP(?);被加数RESULTDB7DUP(00H)RESULT1DB7DUP(00H)DATAENDSSTACKSEGMENTSTADB20DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AX MOVBX,05MOVSI,OFFSETDATA1;设置指针CALLINPUT;调用输入函数INPUTCRLF MOVAH,02MOV DL,2AHINT 21HMOV CX,2LP1:MOV DL,20HINT21HLOOP LP1MOVBX,02;调用输入函数MOVSI,OFFSETDATA2CALLINPUT1CRLFMOVAH,02 MOV CX,7LP3:MOV DL,2DHINT21HLOOP LP3CRLF MOVSI,OFFSETDATA2MOVBL,[SI]MOV BH,[SI+1]ANDBL,00001111BMOVSI,OFFSETDATA1MOVDI,OFFSETRESULTMOVCX,05LOOP1:MOVAL,[SI]ANDAL,00001111BINCSIMULBLAAMADDAL,[DI]AAAMOV[DI],ALINCDIMOV[DI],AHLOOPLOOP1ANDBH,00001111BMOVSI,OFFSETDATA1MOVDI,OFFSETRESULT1INC DIMOVCX,05LOOP2:MOVAL,[SI]ANDAL,00001111BINCSIMULBHAAMADDAL,[DI]AAAMOV[DI],ALINCDIMOV[DI],AHLOOPLOOP2 MOVSI,OFFSETRESULT MOVDI,OFFSETRESULT1MOVDX,SIMOVBP,DIMOVSI,DXMOVDI,BPMOVCX,07CLCAD2:MOVAL,[SI]MOVBL,[DI]ADCAL,BLAAAMOV[SI],ALINCSIINCDILOOPAD2MOVSI,DXMOVDI,BPMOVCX,07MOVSI,OFFSETRESULTDISPL:MOVAH,02MOVDL,[SI+6]ADDDL,30HINT21HDECSILOOPDISPLMOVAX,4C00HINT21HINPUTPROCNEARIN1:MOVAH,01INT21HMOV[SI+4],ALDECSIDECBXJNZIN1RETINPUTENDPINPUT1PROCNEARIN2:MOVAH,01INT21HMOV[SI+1],ALDECSIDECBXJNZIN2RETINPUT1ENDPCODEENDSENDSTART实验结果实验程序运行结果如下:43189*4=172756实验讲义中程序执行结果43189*4=172756实验讲义中程序执行结果99999*88=879991299999*88=8799912如图:xc为实验讲义中例程,得到的结果为×3=135276,符合要求;52为改变后的试验程序,能实现五位数乘三位数,并将乘数、被乘数结果显示在屏幕上,图中为99999*99=9899901。结果正确,符合设计要求。bug与修复改变实验程序后,五位的乘数只有被乘数十位相乘,通过将五位乘数存放单元DATA3变为七位才得到正常结果。实验报告课程名称:微机原理实验(软件)实验名称:实验3字符匹配程序班级20120831学号2012083118姓名指导教师李北明实验三字符串匹配程序实验目的掌握汇编语言中串操作指令的用法。实验内容用串操作指令设计程序,实现在存储区(长度为100H)中寻找空格字符,退出时给出能否找到信息,当找到时,能够显示出空格字符在内存中的位置。。实验程序(修改部分)CRLFMACROMOVDL,0DHMOVAH,02HINT21HMOVAH,02HMOVDL,0AHINT21HENDM DATASSEGMENTMESS1DB'INPUTTHESEGMENTADDR:$'MESS2DB'INPUTTHEOFFSETADDR:$'MESS3DB'OK!HASFOUND',0DH,0AH,'$'MESS4DB'NOSPACECHARACHTWE!',0DH,0AH,'$'ERRORDB'INPUTERROR',0DH,0AH,'$'strdb'',0dh,0ah,'$'DATASENDSSTACKSSEGMENTSTADW32DUP(?)TOPDW?STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKS,ES:DATASSTART:MOVAX,DATASMOVDS,AXMOVES,AXMOVAH,09HMOVDX,OFFSETMESS1INT21HCALLGETNUMMOVES,DXMOVAH,09HMOVDX,OFFSETMESS2INT21HCALLGETNUMMOVDI,DXCLDMOVCX,0100HMOVAL,20HREPNZSCASBJNZCCCMOVAH,09HMOVDX,OFFSETMESS3INT21HDECDIMOVCH,4LOP:MOVCL,4ROLDI,CLMOVDX,DIANDDL,0FHADDDL,30HCMPDL,3AHJBNEXTADDDL,7NEXT:MOVAH,02HINT21HDECCHJNZLOPMOVDX,OFFSETSTRMOVAH,09HINT21HJMPBBBCCC:MOVAH,09HMOVDX,OFFSETMESS4INT21HBBB:MOVAX,4C00HINT21HGETNUMPROCNEARPUSHCXXORDX,DXGGG:MOVAH,01HINT21HCMPAL,0DHJZPPPCMPAL,20HJZPPPSUBAL,30HJBKKKCMPAL,0AHJBGETSCMPAL,11HJBKKKSUBAL,07HCMPAL,0FHJBEGETSCMPAL,2AHJBKKKCMPAL,2FHJAKKKSUBAL,20HGETS:MOVCL,04SHLDX,CLXORAH,AHADDDX,AXJMPGGGKKK:MOVAH,09HMOVDX,OFFSETERRORINT21HPPP:PUSHDXCRLFPOPDXPOPCXRETGETNUMENDPCODESENDSENDSTART实验结果显示找到地址bug与修复显示找到地址本次实验十分顺利的得到了结果,未遭遇bug。实验报告课程名称:微机原理实验(软件)实验名称:实验4字符串匹配程序班级20120831学号2012083118姓名指导教师李北明实验四字符串匹配程序实验目的掌握显示提示信息的方法及接受键盘输入信息的方法。实验内容1、编写程序,实现两个字符串比较。如果相同,则显示”MATCH”,否则,显示“NOMATCH”。2、改变程序,实现两个字符串比较。只有当两个字符串全部相同实结果显示“MATCH”。否则显示两个字符串中相同字符以及相同字符的个数。实验程序CRLF MACRO MOVDL,0DH MOVAH,02H INT21H MOVAH,02H MOVDL,0AH INT21HENDMDATA SEGMENTDATA1DB5DUP(?)MESS1DB 'TOTALLYMATCH',0DH,0AH,'$'MESS2DB 'NOMATCH',0DH,0AH,'$'MESS3DB 'INPUTSTRING1:',0DH,0AH,'$'MESS4DB 'INPUTSTRING2:',0DH,0AH,'$'MESS5DB 'MIS:$'MESS6DB 'N:$'MESS7DB 'D:$'MAXLEN1DB 81ACTLEN1DB?STRING1DB81DUP(?)MAXLEN2DB 81ACTLEN2DB?STRING2DB81DUP(?)DATA ENDSSTACK SEGMENTSTA DB 50DUP(?)TOP EQU LENGTHSTASTACK ENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOVES,AXMOVAX,STACKMOVSS,AXMOVSP,TOP MOV AH,09H MOV DX,OFFSETMESS3 INT 21HMOV AH,0AH MOV DX,OFFSETMAXLEN1 INT 21HCRLFMOV AH,09H MOV DX,OFFSETMESS4 INT 21HMOV AH,0AH MOV DX,OFFSETMAXLEN2 INT 21HCRLFCLDMOVSI,OFFSETSTRING1MOVCL,[SI-1]MOVCH,00HMOVDI,OFFSETSTRING2WANQUAN:CMPSB;比较两字符串,完全相同则跳转至GGG,否则跳转至LLLJNZLLLLOOPWANQUANGGG:MOV AH,09HMOVDX,OFFSETMESS1INT 21H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工会工作计划样例
- 2025年北师大版一年级数学上册教学计划
- 数字农业产品知识培训课件
- 工业离合器相关行业投资规划报告范本
- 2025年的消防工作计划
- 2025幼儿园管理工作计划例文
- 2025年化妆品销售工作计划例文
- 2025德育教研室工作计划范文
- 培养学生语文自信的实践与心得
- 2025年新学期高三班主任工作计划范文
- 海康执法记录仪解决方案
- 液化气供应站安全管理制度和营业制度
- 停车场施工施工组织设计方案
- GB/T 21385-2008金属密封球阀
- GB/T 18994-2003电子工业用气体高纯氯
- 文言文阅读训练:《三国志-武帝纪》(附答案解析与译文)
- (完整版)招聘面试方案设计与研究毕业论文设计
- 调休单、加班申请单
- 肉制品生产企业名录296家
- 规划设计收费标准
- 山区道路安全驾驶教案
评论
0/150
提交评论