资源描述:
《微机原理及接口技术 实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、微机原理及接口技术实验报告学院:信息工程学院专业班级:通信0801姓名:学号:实验一多位十进制数相加实验一.实验目的1.熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。2.掌握数据传送和算术运算指令的用法。二.实验内容将两个多位十制数28056,47193相加,并显示加数,被加数,和。要求加数和被加数均以ASCII码形式各自顺序存放在DATAl和DATA2内存单元中,结果送回DATA1处(低位在前,高位在后)。三.程序流程图开始显示加数和被加数加数和被加数由ASCⅡ码表示转化为十六进制计数值5-->CX清除最低位进位执行ADC带进位相加
2、AAA调整结果送被加数存储区调整偏移量显示加数和被加数CX-1=0N将十六进制结果转化为ASCⅡ码表示的数字Y显示结果结束四.参考程序SHOWMACROBMOVDL,BMOVAH,02HINT21HENDMDATASEGMENTDATA1DB33H,39H,31H,37H,34HDATA2DB36H,35H,30H,38H,32HDATA3DB'__',0DH,0AH,'$'DATAENDSSTACKSEGMENTSTACKSTADB20DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS
3、:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVSI,OFFSETDATA2MOVBX,05SHOW20HCALLDISPLSHOW0DHSHOW0AHMOVSI,OFFSETDATA1MOVBX,05SHOW2BHCALLDISPLSHOW0DHSHOW0AHMOVCL,7S1:SHOW2DHLOOPS1SHOW0DHSHOW0AHMOVSI,OFFSETDATA1MOVDI,OFFSETDATA2CALLADDAMOVSI,O
4、FFSETDATA1MOVBX,05SHOW20HCALLDISPLMOVAX,4C00HINT21HDISPLPROCNEARDS1:SHOW[SI+BX-1]DECBXJNZDS1RETDISPLENDPADDAPROCNEARMOVDX,SIMOVBP,DIMOVBX,05AD1:SUBBYTEPTR[SI+BX-1],30HSUBBYTEPTR[DI+BX-1],30HDECBXJNZAD1MOVSI,DXMOVDI,BPMOVCX,05CLCAD2:MOVAL,[SI]MOVBL,[DI]ADCAL,BLAAAMOV[SI],ALINCSI
5、INCDILOOPAD2MOVSI,DXMOVDI,BPMOVBX,05AD3:ADDBYTEPTR[SI+BX-1],30HADDBYTEPTR[DI+BX-1],30HDECBXJNZAD3RETADDAENDPCODEENDSENDSTART三.实验过程进入DOS环境,进入E盘MASM子目录,键入:E:回车CD:MASM回车EDIT*.ASM回车(*为程序名)打开编辑窗口将汇编语言源程序输入对源程序进行汇编链接,执行并调试可执行文件六.思考题不改变数据段DATA1和DATA2的内容,如何将加数与被加数分别由28056和47193变成65082和
6、39174,并且相加答:源程序不变将DATA1DB33H,39H,31H,37H,34HDATA2DB36H,35H,30H,38H,32H后加上DATA4DB37H,34H,31H,39H,33HDATA5DB32H,38H,30H,35H,36H并将全部DATA1和DATA2全部改成DATA4和DATA5就可以实现七、实验感想:通过本实验,基本学会了数据传送和算术运算指令的用法,熟悉了DOS环境,并且对微机原理及接口技术这门课程有了更深的了解和认识。实验二统计数据个数实验一.实验目的掌握将多位十六进制数转换成多位十进制数ASCII码的方法二.实验
7、内容统计内存数组中大于0和小于0的元素个数,并将统计结果分别存放在LRESULT和HRESULT变量中,并显示个数三.程序流程图开始数组元素个数---->CLSI指向数组首地址比较是正数?HERSULT+1YLERSULT+1SI+1---->SICL-1=0?N显示提示信息Y显示正元素个数显示负元素个数结束三.参考程序DATASEGMENTARYDB1,3,-1,2,6,-9,-5,7,8,1,3,8,-6,8,-9,-7,2,4,-3,-3DB-4,7,7,8,3,1,3,6,8,5,5,6,4,5,7,-4,2,4,5,-7,5,4DB2,5,
8、7,8,8,8,7,6,-5,4,3,2,1,-1,2,2,3,-4,5,6,7N=$-ARYLRESULT