北京理工大学大学计算机实验报告八,北京理工大学汇编实验报告2.docx

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

本科实验报告实验名称实验二 算术运算实验 课程名称课程设计(CPU与汇编)(实验)实验时间第5-10周周五下午任课教师聂青实验地点10-102实验教师苏京霞实验类型 原理验证 综合设计 自主创新学生姓名罗逸雨学号/班级1120141208 05211401组 号3学 院信息与电子学院同组搭档专 业通信工程成 绩一、实验目的1 掌握MASM for Windows 环境下的汇编语言编程环境使用;2 掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD码的表示形式;3 掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标志位的影响及测试方法;4 掌握无符号数和有符号数运算区别及编程方法;二、实验环境与原理1.实验软硬件环境1 硬件环境惠普 64 位一体化计算机及局域网;2 软件环境Windows 8,红蜘蛛管理系统,MASM for Windows。2.实验原理算术运算实验需要对运行结果进行调试及查看状态字,其相关知识如下。1 标志位在debug调试过程中,标志位用特殊符号表示的,其标志名和状态符号的对照表参照表1所示。2 加减法指令ADD表示加法指令,ADC表示带进位加法指令,SUB表示减法指令,SBB表示带进位减法指令。3 乘除法指令MUL表示无符号数乘法指令,IMUL表示带符号数乘法指令,DIV表示无符号数除法指令,IDIV表示带符号数除法指令。4 符号位扩展指令CBW表示从字节扩展到字的指令,CWD表示从字扩展到双字的指令。5 BCD码的调整指令在进行十进制加减运算时,需要将数据用BCD码表示,还要考虑到是组合BCD码还是非组合BCD码,组合BCD码是用一个字节表示两位十进制数,非组合BCD码是用一个字节表示一位十进制数,对于组合的BCD码加减法运算其结果存放在AL中。组合的BCD码加法调整指令DAA;组合的BCD码减法调整指令DAS;非组合的BCD码加法调整指令AAA;非组合的BCD码减法调整指令AAS;乘法的非组合BCD码调整指令AAM;除法的非组合BCD码调整指令AAD。8088/8086指令系统提供了实现加、减、乘、除运算指令,可参照表2所示内容。三、实验步骤1试编程以下各组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响总结各运算对状态标志位的影响,及其意义。2 在数据段定义了两个多精度的有符号16进制数,BUF1和BUF2。求两数的和与差,并将计算值存放在BUF3为首地址的缓冲区中;同时将两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在BUF3为首地址的缓冲区中。试编程实现上述运算。BUF1 DB 92H,98H,45H,64H,78H BUF2 DB 33H,46H,17H,45H,52H3 编程计算280*584/ 190,运算结果用十六进制表示。要求上式计算结果的商存入AX,余数存入DX寄存器。四、程序清单与框图(1)程序CODES SEGMENT ASSUME CSCODESSTART MOV AX,0ABH MOV BX,78H ADD AX,BX ; 0ABH078H MOV AX,0ABH MOV BX,78H SUB AX,BX; 0ABH-078H MOV AX,64H ADD AX,5AH; 64H5AH MOV AX,64H SUB AX,5AH; 64H-5AH MOV AL,0A2H MOV BL,3FH MUL BL ; 0A2H*3FH MOV AX,0A2H MOV BL,3FH DIV BL ; 0A2H/3FH MOV AH,4CH INT 21HCODES ENDSEND START(2)程序1. 十六进制求和DATAS SEGMENTBUF1 DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52HBUF3 DB 6 DUP ;最高位符号位扩展后占一个字,共6个字节A DW 0HDATAS ENDSCODES SEGMENT ASSUME CSCODES,DSDATASSTART MOV AX,DATAS MOV DS,AX LEA SI,BUF1 LEA DI,BUF2 LEA BX,BUF3 CLC ;进位清空 MOV CX,4L MOV AL,SI ADC AL,DI MOV BX,AL INC SI INC DI INC BX ;BX自增,指向下一个字节单元 DEC CX JNZ L MOV AL,byte ptrSI CBW ;符号扩展 MOV DX,AX MOV AL,byte ptrDI CBW ;符号扩展 ADC AX,DX MOV word ptrBX,AX MOV AH,4CH INT 21HCODES ENDSEND START开始框图 初始化BUF1,BUF2,BUF3单元将BUF1,BUF2,BUF3偏移地址放入SI、DI、BX中循环次数CX设为4将SI和DI低位字节单元中的内容求和并保存到BX对应字节单元中SI加一DI加一BX加一CX减一NCX0 YSI和DI中最高位字节扩展后求和并保存到BX字单元中结束程序功能通过循环分别求得BUF1、BUF2中低四位字节的和,并存在BUF3对应字节单元中。值得注意的是有符号数相加时需要对最高位字节先进行符号扩展,所以BUF1、BUF2的高位字节的和需要放在循环外单独计算,最后将高位单元的字型的和存储在BUF3中。十六进制减法程序同理。组合BCD码加减法在最后需要进行DAA/DAS调整。2. 十六进制作差DATAS SEGMENTBUF1 DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52HBUF3 DB 6 DUP DATAS ENDSCODES SEGMENT ASSUME CSCODES,DSDATASSTART MOV AX,DATAS MOV DS,AX LEA SI,BUF1 LEA DI,BUF2 LEA BX,BUF3 CLC MOV CX,4L MOV AL,SI SBB AL,DI MOV BX,AL INC SI INC DI INC BX DEC CX JNZ L MOV AL,byte ptrSI CBW ;符号扩展 MOV DX,AX MOV AL,byte ptrDI CBW ;符号扩展 SBB DX,AX MOV word ptrBX,DX MOV AH,4CH INT 21HCODES ENDSEND START3. 十进制求和DATAS SEGMENTBUF1 DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52HBUF3 DB 6 DUP DATAS ENDSCODES SEGMENT ASSUME CSCODES,DSDATASSTART MOV AX,DATAS MOV DS,AX LEA SI,BUF1 LEA DI,BUF2 LEA BX,BUF3 CLC MOV CX,5L MOV AL,SI ADC AL,DI DAA MOV BX,AL INC DI INC SI INC BX DEC CX JNZ L MOV AL,0 ADC AL,0 ;存最高位进位 DAA MOV byte ptrBX,AL MOV AH,4CH INT 21HCODES ENDSEND START4.十进制作差DATAS SEGMENTBUF1 DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52HBUF3 DB 6 DUP DATAS ENDSCODES SEGMENT ASSUME CSCODES,DSDATASSTART MOV AX,DATAS MOV DS,AX LEA SI,BUF1 LEA DI,BUF2 LEA BX,BUF3 CLC MOV CX,5L MOV AL,SI SBB AL,DI DAS MOV BX,AL INC DI INC SI INC BX DEC CX JNZ L MOV AL,0 SBB AL,0 DAS MOV byte ptrBX,AL MOV AH,4CH INT 21HCODES ENDSEND START(3)程序CODES SEGMENT ASSUME CSCODES MOV AX,280 MOV BX,584 MUL BX MOV BX,190 DIV BX MOV AH,4CH INT 21HCODES ENDSEND五、实验结果与分析(1)计算状态标志算式结果AFCFZFOFSFPF0ABH78H123HACNCNZNVPLPO0ABH-78H33HNANCNZNVPLPE64H5AHBEHNANCNZNVPLPE64H-5AH0AHACNCNZNVPLPE0A2H*3FH27DEACCYNZOVPLPE0A2H/3FH商02 余数42ACCYNZOVPLPE无符号数运算标志位意义总结状态标志位加法减法乘法除法01010101CF最高位无进位最高位有进位最高位无借位最高位有借位CFOF0乘积的高一半为0(字节操作的(AH)或字操作的(DXCFOF1乘积的高一半不为0无定义AF低四位向高四位无进位低四位向高四位进位低四位向高四位无进位低四位向高四位进位无影响无影响ZF结果不为0结果为0结果不为0结果为0无影响无影响OF无溢出两个同符号数相加,结果符号与其相反,发生溢出。无溢出两数符号相反,而结果符号与减数相同,发生溢出。CFOF0乘积的高一半为0(字节操作的(AH)或字操作的(DXCFOF1乘积的高一半不为0SF最高位为0最高位为1最高位为0最高位为1无影响无影响PF1的个数为奇数个1的个数为偶数个1的个数为奇数个1的个数为偶数个无影响无影响DEBUG运行结果截图0ABH078H0123H 0ABH-78H0033H64H5AHBEH64H-5AH0AH02AH*3FH27DE0A2H/3FH 商02 余数 422BUF1、BUF2均为有符号数BUF1 DB 92H,98H,45H,64H,78HBUF2 DB 33H,46H,17H,45H,52H16进制结果10进制结果BUF1BUF2C5 DE 5C A9 CA 0025 45 63 09 31 01BUF1-BUF25F 52 2E 1F 26 00 59 52 28 19 26 00经过计算验证,运行结果均正确。DEBUG运行结果截图1.十六进制数求和2.十六进制数作差3.十进制求和4.十进制作差3280*584/190 商035CH 余数0078HDEBUG运行结果截图AX035C,DX0078经验算后证明结果正确。六、实验感想经过本次实验,我对汇编语言中的二进制、十六进制、十进制、BCD码的表示形式有了一定了解,对有关BCD码调整指令方面的知识有了更深刻的认识,熟悉了二进制多字节加减法基本指令的使用方法以及无符号数和有符号数乘法和除法指令的使用,通过分析和思考,掌握了各类运算类指令对各状态标志位的影响和测试方法,以及无符号数和有符号数运算区别及编程方法。在编第二小题的程序时,开始时我忽略了给出的有符号数这个条件,使用了无符号数的方法进行编程,后来老师指出了这个问题。经过更正这个错误,尝试了无符号数和有符号数的不同的编程方式,我对无符号数和有符号数运算的区别及编程方法有了更加深刻的认识。在课堂上学的知识只给我留下了较浅的印象,只有通过自己动手编程才能有效巩固所学的知识。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验七实验报告表 实验名称:广域网通信与邮件传输 学号 姓名 班级: 实验时间: 实验报告表7-1 网络中实现通信互联的主要设备和其功能 主要设备 功能或描述 电脑 查看、编辑、发送邮件 DNS服务器 为网络提供域名 路由器 连接网络 邮件服务器 负责电子邮件收发管理的设备 实验报告表7-2域名解析的IP路由通讯的过程 步骤 操作或过程描述、所涉及设备 1 电脑/发送邮件/IP:10.7.1.6 2 路由器A传到路由器B 3 路由器B传到路由器D 4 路由器传到邮件服务器 5 6 7 实验报告表7-3数据在网络中的IP路由通讯过程 步骤 操作或过程描述、所涉及设备 1 电脑/输入邮件内容并发送 2 经路由器A传到路由器N 3 经路由器N传到DNS服务器 4 由DNS服务器发出 5 经路由器N传到路由器B 6 经路由器B传到路由器D 7 经路由器D传到邮件服务器 8 由邮件服务器发出邮件 北理大学计算机实验基础-实验七实验报告表全文共2页,当前为第2页。北理大学计算机实验基础-实验七实验报告表全文共2页,当前为第1页。实验报告表7-4路由器是如何确定进行转发的下一跳路径的 北理大学计算机实验基础-实验七实验报告表全文共2页,当前为第2页。 北理大学计算机实验基础-实验七实验报告表全文共2页,当前为第1页。 路由器IP 目标网络 子网掩码 路由节点地址 A 106.17.22.1 255.255.255.0 122.12.18.3 208.5.5.0 255.255.255.0 122.12.18.3 207.113.21.1 255.255.255.0 11.45.2.4 B 208.5.5.0 255.255.255.0 112.12.45.3 106.17.22.0 255.255.255.0 112.12.45.3 209.113.21.0 255.255.255.0 21.22.1.5 C 145.13.21.0 255.255.255.0 145.12.21.3 255.255.255.0 255.255.255.0 D 209.113.21.0 255.255.255.0 209.113.21.1 255.255.255.0 255.255.255.0 北理大学计算机实验基础-实验七实验报告表 1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值