北理工-汇编-实验二-算术运算类操作实验_第1页
北理工-汇编-实验二-算术运算类操作实验_第2页
北理工-汇编-实验二-算术运算类操作实验_第3页
北理工-汇编-实验二-算术运算类操作实验_第4页
北理工-汇编-实验二-算术运算类操作实验_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./本科实验报告实验名称:实验二算术运算类操作实验<基础与设计课程名称:CPU与汇编实验实验时间:任课教师:实验地点:实验教师:实验类型:□原理验证■综合设计□自主创新学生姓名:组号:无学院:信息与电子同组搭档:无专业:信息工程成绩:.一、实验要求和目的

1.了解汇编语言中的二进制、十六进制、十进制、BCD码的表示形式;2.掌握各类运算类指令对各状态标志位的影响及测试方法;3.熟悉汇编语言二进制多字节加减法基本指令的使用方法;4.熟悉无符号数和有符号数乘法和除法指令的使用;5.掌握符号位扩展指令的使用;6.掌握BCD码调整指令的使用方法。二、软硬件环境

1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。三、实验涉及的主要知识1.加减法处理指令2.乘除法指令和符号位扩展指令3.BCD码的调整指令四、实验内容〔一对于两组无符号数,087H和034H,0C2H和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响:计算状态标识表达式结果〔HCFAFZFOFSFPF087H+034H00BB000001087H-034H0053000001087H*034H1B6C000001087H/034H0002<1F>0000010C2H+5FH01210100010C2H-5FH00630100010C2H*5FH47FE0100010C2H/5FH0002<04>010001开始结束开始结束将两组数据分别存入AX,BX中,将二者中的数据相加,存入AX中将两组数据分别存入AX,BX中,用AX中数据减去BX中数据,存入AX中将两组数据分别存入AX,BX中,将二者中的数据相乘,存入AX中将两组数据分别存入AX,BX中,用AX中数据除以BX中数据,存入AX中2.程序代码:DATASSEGMENTDATASENDSSTACKSSEGMENTSTACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVAX,0C2HMOVBX,5FHADDAX,BX ;addMOVAX,0C2HMOVBX,5FHSUBAX,BX ;subMOVAX,0C2HMOVBX,5FHMULBX ;mulMOVAX,0C2HMOVBX,5FHDIVBX ;divMOVAH,4CHINT21HCODESENDSENDSTART〔将数据改变得到另一组输出结果实验结果以第一组数的加法为例〔已将截图以上输入-t进行debug的步骤省略此时右下角信息〔NVUP……代表标志寄存器的值。结果分析:由资料可得:1.CF<carryflag>:进位标志位,运算结果需要进位为1,不需进位为02.PF<parityflag>:奇偶标志位,当运算结果的低8位中的"1"的个数为偶数时PF=1,为奇数时,PF=0。3.AF<auxiliaryflag>:辅助进位标志,第3位有进位为1,无进位为04.ZF<zeroflag>:零标志位,当运算结果为零时ZF=1,否则ZF=0。5.SF<signflag>:符号标志位,当运算结果的最高位为1时SF=1,否则SF=0。6.OF<overflowflag>:溢出标志位,当算术运算结果超出了带符号数的范围,即溢出时,OF=1,否则OF=0.其中注意在本程序中,SUB影响全部的条件标志:减法的CF反应的是无符号数运算中的借位情况:当减数>被减数是CF=1,否则CF=0;

2.OF:如果两个数的符号相反而结果的符号与减数相同,则OF=1,否则OF=0;

3.SF〔运算结果<0为1否则为0、ZF〔零标志、AF〔辅助进位标志、PF〔奇偶标志根据其含义设置。〔二在数据段定义了两个多精度的有符号16进制数,FIRST和SECOND,1求两数的和与差,并将结果存放在THIRD为首地址的缓冲区中;2如果把两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在FORTH为首地址的缓冲区中。试编程实现上述运算。FIRSTDW45H,82H,96H,57HSECONDDW12H,46H,83H,45H16进制结果10进制结果FIRST+SECOND0057C9199CH0058298002DFIRST-SECOND00333C1312H0033361312D1.流程图SI,DI,CX均自减1SI,DI,CX均自减1将FIRST[SI+3]与SECOND[SI+3]存入AL、BL,带进位相加,再加上CF的值。结果存入THIRD[DI+4]中。设定寄存器初始值SI=0,DI=0,CX=3,作为计数器开始取值是否加到最高位〔CX=0将AX值强制显示在THIRD[DI+4]中〔若有高位则存入THIRD[DI+5]带进位相加存入AX将FIRST[SI+3]与SECOND[SI+3]存入AL、BL单字节扩展为双字节设置寄存器值为SI=0,DI=5,CX=3………………否否是是十六进制减法及十进制显示部分略。十进制加法前设置寄存器值为SI=0,DI=0,CX=3,在每步相加后用DAA显示为十进制数,十进制加法前设置寄存器值为SI=0,DI=5,CX=3,在每步相减后用DAS显示为十进制数。2.程序代码:DATASSEGMENT FIRSTDB45H,82H,96H,57H SECONDDB12H,46H,83H,45H THIRDDB10DUP<?> ;注意保证数组空间足够大 FORTHDB10DUP<?>DATASENDSSTACKSSEGMENTSTACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVSI,0MOVDI,0MOVCX,3 ;设置寄存器值,作为计数器L1: ;十六进制显示加法MOVAL,FIRST[SI+3]MOVBL,ALMOVAL,SECOND[SI+3]ADCAL,BLMOVTHIRD[DI+4],ALDECSIDECDIDECCXJNZL1 ;若CX不为零,则未到最高位,循环DECDI ;CX为零,跳出循环MOVAL,FIRST[SI+3]CBW ;扩充,符号位存入AHMOVBX,AXMOVAL,SECOND[SI+3]CBWADCAX,BXMOVWORDPTRTHIRD[DI+4],AX ;将AX强制显示。即高位存入下一位。MOVDI,5 ;重置寄存器值,避开加法结果位置。MOVSI,0MOVCX,3L2: ;十六进制显示减法MOVAL,FIRST[SI+3]MOVBL,SECOND[SI+3]SBBAL,BLMOVTHIRD[DI+4],ALDECSIDECDIDECCXJNZL2DECDIMOVAL,FIRST[SI+3]CBWMOVBL,SECOND[SI+3]CBWSBBAX,BXMOVWORDPTRTHIRD[DI+4],AXMOVDI,0MOVSI,0MOVCX,3L3: ;十进制显示加法MOVAL,FIRST[SI+3]MOVBL,ALMOVAL,SECOND[SI+3]ADCAL,BLDAA;显示为十进制MOVFORTH[DI+4],ALDECSIDECDIDECCXJNZL3DECDIMOVAL,FIRST[SI+3]CBWMOVBX,AXMOVAL,SECOND[SI+3]CBWADCAX,BXDAAMOVWORDPTRFORTH[DI+4],AXMOVDI,5MOVSI,0MOVCX,3L4: ;十进制显示减法MOVAL,FIRST[SI+3]MOVBL,SECOND[SI+3]SBBAL,BLDASMOVFORTH[DI+4],ALDECSIDECDIDECCXJNZL4DECDIMOVAL,FIRST[SI+3]CBWMOVBL,SECOND[SI+3]CBWSBBAX,BXDASMOVWORDPTRFORTH[DI+4],AXMOVAH,4CHINT21HCODESENDSENDSTART3.调试结果结果分析〔1CWB为扩充,符号位置于AH;〔2将AX放入THIRD中时,由于AX为WORD型,THIRD为BYTE型,故需要PTR指令;〔3最高位相加时,将进位结果强制存入数组,结果如图显示,第二位00为最高位进位结果。

〔三编程计算<<Z+X*Y-328>-V>/Y,其中X、Y、Z、V均为16位带符号数,假设初始数据分别装入X、Y、Z、V单元,要求上式计算结果的商存入AX,余数存入DX寄存器。同学自行给出初始值加以验证程序。开始结束开始结束计算x*y取值计算x*y+z计算x*y+z-328计算x*y+z-328-v计算〔x*y+z-328-v/y2.程序代码DATASSEGMENT XDW0FF3H YDW1117H ZDW000FH VDW5B12HDATASENDSSTACKSSEGMENTSTACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVAX,XIMULY;x*y,保存在DX,AX中MOVCX,AXMOVBX,DX;此时DX,AX存入BX,DX中MOVAX,Z;扩展,存入AXCWDADDCX,AXADCBX,DXSUBCX,328SBBBX,0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论