您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 实验一四则运算(INTERNET)
123456电工电子实验中心实验报告课程名称:计算机硬件技术基础实验实验名称:实验一四则运算姓名:学号:评定成绩:审阅教师:实验时间:1234561234561一、实验目的要求1.熟悉汇编语言的框架结构,掌握顺序结构的编程方法;2.熟悉Tddebug调试环境和TurboDebugger的使用;3.理解X86内存数据的组织方式;4.理解基本的内存寻址方式。二、实验任务完成32位无符号数的加法、减法,16位乘以16位,32位除以16位除法的四则运算练习。三、实验代码DATASEGMENTADW1234H,5678H;被加数BDW0FEDCH,123AH;加数CDW2DUP(?)ADDW0FEDCH,0BA98HBDDW1234H,789AHCDDW2DUP(?)A1DW0D678HB1DW0012HC1DW2DUP(?)A2DW5678H,0234HB2DW0F234HC2DW2DUP(?)DATAENDSSTACK1SEGMENTSTACKDB100DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1STARTPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXMOVAX,A;32位无符号加法ADDAX,B;低16位加低16位MOVC,AX;保存结果1234562MOVAX,A+2ADCAX,B+2;高16位加高16位MOVC+2,AX;保存结果MOVAX,AD;补全代码1-32位无符号减法SUBAX,BD;低16位相减MOVCD,AX;保存结果MOVAX,AD+2SBBAX,BD+2;高16位相减MOVCD+2,AX;保存结果MOVAX,A1;补全代码2-16位乘以16位MULB1;AX中的16位与B1中的16位相乘(结果为32位)MOVC1,AX;保存低16位结果MOVC1+2,DX;保存高16位结果MOVAX,A2;补全代码3-32位除以16位MOVDX,A2+2;高16位DIVB2;AX中的低16位、DX中的高16位与B2中的16位相乘MOVC2,AX;保存低16位结果MOVC2+2,DX;保存高16位结果RETSTARTENDPCODEENDSENDSTART四、探究内容1)若需要进行有符号数的运算,需要注意什么问题?如何实现?答:有符号数的首位数字,0代表“+”,1代表“-”;同样n位数的有符号数的计算范围是-2^(n-1)-2^(n-1),无符号数的计算范围是0-(2^n)-1。有符号数负数采用补码进行计算。直接用算数运算指令(加减法与无符号数指令相同,乘除法指令与无符号数不同)进行计算,但要保证两个操作数同时为有符号数或无符号数。2)上述实验中,我们在80X86的实模式中实现了32位的四则运算。如何利用32位指令,实现64位的四则运算?答:先用80X86的指令对64位的低32位进行运算,再对高32进行运算五、实验的运行数据及分析1.实验数据记录:1234563图1emu8086软件运行界面截图图2emu8086程序运行结果截图DS:000034H12H78H56HDCHFEH3AH12HDS:000810H11HB3H68HDCHFEH98HBAHDS:001034H12H9AH78HA8HECHFEH41HDS:001878HD6H12H00H70H14H00H00HDS:002078H56H34H02H34HF2H54H02HDS:002868H75H(注:各数据段地址中只保存数值,例如“34H”中的“H”只为了说明保存的值是十六进制的34)图3程序运行结果数据整理表格2.数据分析:数据段中,在地址0008~000B中,存放的是A+B(A所对应的地址开始存放的32位值与B所对应的地址开始存放的32位值相加)的和,理论分析与实验结果相符;在地址0014~0017中,存放的是AD-BD(AD所对应的地址开始存放的32位值与BD所对应的地址开始存放的32位值相减)的差,理论分析与实验结果相符;在地址001C~001F中,存放的是A1*B1(A1所对应的地址开始存放的16位值与B所对应的地址开始存放的16位值相乘)的积,理论分析与实验结果相符;在地址0026~0029中,存放的是A2/B21234564的商(A2所对应的地址开始存放的32位值与B2所对应的地址开始存放的16位值相除),理论分析与实验结果相符。六、实验讨论及心得体会通过这次实验,我大致了解了微机原理实验软件的使用方法,并且在课堂学习的基础上,通过实际软件运行结果的观察,对数据在数据段中的存储方式和顺序有了更加深刻的印象和了解(一个16位的数存放在存储器的数据段中时,低8位存放在低地址,高8位存放在高地址)。四则运算的实验让我更加直观地看到了加减乘除运算过程中,各个相关存储单元中数值的变化过程,单步调试的操作让我可以清楚地看到程序一步步的运行过程,这有助于我增加对于汇编语言结构和内部存储结构的了解。实验中,我也看到了和搭档通力协作的重要性:一开始,自己一个人摸索软件使用时四处碰壁,经过搭档的交流和指点,渐渐熟悉了软件基本的操作流程,这个实验也在我们的通力协作之下完成了。当然,第一次实验也暴露出了我在硬件课程学习过程中的诸多不足,我在以后课程的学习过程中需要逐步改进。
本文标题:实验一四则运算(INTERNET)
链接地址:https://www.777doc.com/doc-5968183 .html