北京理工大学汇编实验报告2.doc

上传人:公**** 文档编号:548257234 上传时间:2023-02-20 格式:DOC 页数:22 大小:338KB
返回 下载 相关 举报
北京理工大学汇编实验报告2.doc_第1页
第1页 / 共22页
北京理工大学汇编实验报告2.doc_第2页
第2页 / 共22页
北京理工大学汇编实验报告2.doc_第3页
第3页 / 共22页
北京理工大学汇编实验报告2.doc_第4页
第4页 / 共22页
北京理工大学汇编实验报告2.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《北京理工大学汇编实验报告2.doc》由会员分享,可在线阅读,更多相关《北京理工大学汇编实验报告2.doc(22页珍藏版)》请在金锄头文库上搜索。

1、北京理工大学汇编实验报告2.本科实验报告实验名称:实验二算术运算实验课程名称:课程设计(CPU与汇编(实验实验时间:第5-10周周五下午任课教师:聂青实验地址:10-102实验教师:苏京霞实验种类:?原理考证综合设计自主创新学生姓名:罗逸雨学号/班级:112014120805211401组号:3学院:信息与电子学院同组搭档:专业:通讯工程成绩:/一、实验目的1掌握MASMforWindows环境下的汇编语言编程环境使用;2 掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD码的表示形式;3 掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标记位的影响

2、及测试方法;4 掌握无符号数和有符号数运算差别及编程方法;二、实验环境与原理1.实验软硬件环境1硬件环境:惠普64位一体化计算机及局域网;2软件环境:Windows8,红蜘蛛管理系统,MASMforWindows。2.实验原理算术运算实验需要对运转结果进行调试及查察状态字,其有关知识以下。1 标记位在debug调试过程中,标记位用特别符号表示的,其标记名和状态符号的比较表参照表1所示。2 加减法指令ADD表示加法指令,ADC表示带进位加法指令,SUB表示减法指令,SBB表示带进位减法指令。3 乘除法指令MUL表示无符号数乘法指令,IMUL表示带符号数乘法指令,DIV表示无符号数除法指令,IDI

3、V表示带符号数除法指令。4 符号位扩展指令CBW表示从字节扩展到字的指令,CWD表示从字扩展到双字的指令。5BCD码的调整指令在进行十进制加减运算时,需要将数据用BCD码表示,还要考虑到是组合BCD码仍是非组合BCD码,组合BCD码是用一个字节表示两位十进制数,非组合BCD码是用一个字节表示一位十进制数,关于组合的BCD码加减法运算其结果寄存在AL中。组合的BCD码加法调整指令DAA;组合的BCD码减法调整指令DAS;非组合的BCD码加法调整指令AAA;非组合的BCD码减法调整指令AAS;乘法的非组合BCD码调整指令AAM;除法的非组合BCD码调整指令AAD。8088/8086指令系统供给了实

4、现加、减、乘、除运算指令,可参照表2所示内容。三、实验步骤1试编程以下各组数的和差积商,并考虑计算结果对标记寄存器中状态标记位的影响:总结各运算对状态标记位的影响,及其意义。2在数据段定义了两个多精度的有符号16进制数,BUF1和BUF2。求两数的和与差,并将计算值寄存在BUF3为首地址的缓冲区中;同时将两组数据看作十进制数据来办理,再次求两数的和与差,并将结果寄存在BUF3为首地址的缓冲区中。试编程实现上述运算。BUF1DB92H,98H,45H,64H,78HBUF2DB33H,46H,17H,45H,52H3编程计算280*584/190,运算结果用十六进制表示。要求上式计算结果的商存入

5、AX,余数存入DX寄存器。四、程序清单与框图(1程序:CODESSEGMENTASSUMECS:CODESSTART:MOVAX,0ABHMOVBX,78HADDAX,BX;0ABH+078HMOVAX,0ABHMOVBX,78HSUBAX,BX;0ABH-078HMOVAX,64HADDAX,5AH;64H+5AHMOVAX,64HSUBAX,5AH;64H-5AHMOVAL,0A2HMOVBL,3FHMULBL;0A2H*3FHMOVAX,0A2HMOVBL,3FHDIVBL;0A2H/3FHMOVAH,4CHINT21HCODESENDSENDSTART(2程序:1.十六进制乞降DATA

6、SSEGMENTBUF1DB92H,98H,45H,64H,78HBUF2DB33H,46H,17H,45H,52HBUF3DB6DUP(?;最高位符号位扩展后占一个字,共6个字节ADW0HDATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXLEASI,BUF1LEADI,BUF2LEABX,BUF3CLC;进位清空MOVCX,4L:MOVAL,SIADCAL,DIMOVBX,ALINCSIINCDIINCBX;BX自增,指向下一个字节单元DECCXJNZLMOVAL,byteptrSICBW;符号扩展MOV

7、DX,AXMOVAL,byteptrDICBW;符号扩展ADCAX,DXMOVwordptrBX,AXMOVAH,4CHINT21HCODESENDSENDSTART框图:Y程序功能:经过循环分别求得BUF1、BUF2中低四位字节的和,并存在BUF3对应字节单元中。值得注意的是有符号数相加时需要对最高位字节先进行符号扩展,因此BUF1、BUF2的高位字节的和需要放在循环外独自计算,最后将高位单元的字型的和储存在BUF3中。十六进制减法程序同理。组合BCD码加减法在最后需要进行DAA/DAS调整。开始CX=0?结束初始化BUF1,BUF2,BUF3单元循环次数CX设为4SI加一DI加一BX加一C

8、X减一将BUF1,BUF2,BUF3偏移地址放入SI、DI、BX中将SI和DI低位字节单元中的内容乞降并保留到BX对应字节单元NSI和DI中最高位字节扩展后乞降并保留到BX字单元中2.十六进制作差DATASSEGMENTBUF1DB92H,98H,45H,64H,78HBUF2DB33H,46H,17H,45H,52HBUF3DB6DUP(?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXLEASI,BUF1LEADI,BUF2LEABX,BUF3CLCMOVCX,4L:MOVAL,SISBBAL,DIM

9、OVBX,ALINCSIINCDIINCBXDECCXJNZLMOVAL,byteptrSICBW;符号扩展MOVDX,AXMOVAL,byteptrDICBW;符号扩展SBBDX,AXMOVwordptrBX,DXMOVAH,4CHINT21HCODESENDSENDSTART3.十进制乞降DATASSEGMENTBUF1DB92H,98H,45H,64H,78HBUF2DB33H,46H,17H,45H,52HBUF3DB6DUP(?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXLEASI,BUF1LEADI,BUF2LEABX,BUF3CLCMOVCX,5L:MOVAL,SIADCAL,DIDAAMOVBX,ALINCDIINCSIINCBXDECCXJNZLMOVAL,0ADCAL,0;存最高位进位DAAMOVbyteptrBX,ALMOVAH,4CHINT21HCODESENDSENDSTART4.十进制作差DATASSEGMENTBUF1DB92H,98H,45H,64H,78HBUF2DB33H,46H,17H,45H,52HBUF3DB6DUP(?DATASENDSCODESSEGMENT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号