汇编实验第二次实验报告

上传人:ji****n 文档编号:48161607 上传时间:2018-07-11 格式:DOC 页数:12 大小:240KB
返回 下载 相关 举报
汇编实验第二次实验报告_第1页
第1页 / 共12页
汇编实验第二次实验报告_第2页
第2页 / 共12页
汇编实验第二次实验报告_第3页
第3页 / 共12页
汇编实验第二次实验报告_第4页
第4页 / 共12页
汇编实验第二次实验报告_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《汇编实验第二次实验报告》由会员分享,可在线阅读,更多相关《汇编实验第二次实验报告(12页珍藏版)》请在金锄头文库上搜索。

1、 本科实验报告实验名称:实验名称: 实验二实验二 算术运算类操作实验算术运算类操作实验 (基础与设计)基础与设计) 课程名称: CPU 与汇编实验时间:任课教师:实验地点:实验教师:学生姓名:实验类型: 原理验证 综合设计 自主创新学号/班级 :组 号:学 院:同组搭档:专 业:成 绩:CPU 与汇编实验二实验报告与汇编实验二实验报告一、实验目的1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式;2、掌握各类运算类指令对各状态标志位的影响及测试方法;3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;4、熟悉无符号数和有符号数乘法和除法指令的使用;5、掌握符号位扩展指令的使用

2、。6、掌握 BCD 码调整指令的使用方法二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有 MASM、DEBUG、LINK、等应用程序。三、实验涉及的主要知识本实验主要进行算术运算程序设计和调试,涉及到的知识点包括:1加减法处理指令主要有加法指令 ADD,带进位加法 ADC,减法指令 SUB,带进位减法指令 SBB。2乘除法指令和符号位扩展指令主要有无符号数乘法指令 MUL,带符号数乘法指令 IMUL,无符号数除法指令 DIV,带符号数除法指令 IDIV,以及符号位从字节扩展到字的指令CBW 和从字扩展到双字的指令 CWD。3BCD 码的调整指令主要有非压缩的 BCD

3、码加法调整指令 DAA,压缩的 BCD 码减法调整指令 DAS,非压缩的 BCD 码加法调整指令 AAA,非压缩的 BCD 码减法调整指令 AAS,乘法的非压缩 BCD 码调整指令 AAM,除法的非压缩 BCD码调整指令 AAD。四、实验内容与步骤1、对于两组无符号数,087H 和 034H,0C2H 和 5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响。编程并运行结果如下表:计 算 状态标志 表达式 结果 CF AF ZF OF SF PF 087H +034H BBH NC NA NZ NV NG PE 087H -034H 53H NC NA NZ OV

4、PL PE 087H *034H 1B6CH CY NA NZ OV PL PE 087H/034H 1F02H CY NA NZ OV PL PE 0C2H+5FH 21H CY AC NZ NV PL PE 0C2H-5FH 63H NC AC NZ OV PL PE 0C2H*5FH 47FEH CY AC NZ OV PL PE 0C2H/5FH 0402H CY AC NZ OV PL PE 对状态标志位的影响小结:对状态标志位的影响小结:CF 为进位标志,运算过程中发生进位(超出 AL 表示范围)则为CY,否则为 NC;AF 为半进位标志,运算过程中某位发生进位,但结果没有超出 A

5、L表示范围,则为 AC,否则为 NA;ZF 为中断标志,这里没有影响;OF 为溢出标志,表示有符号运算时运算是否溢出,溢出为 OV,否则为 NV;SF 为符号标志,当看成符号数时,如果表示负数,则为 NG,否则为PL;PF 为奇偶标志,运算结果二进制中 1 的个数为奇数时为 PO,偶数时为 PE。程序代码如下:程序代码如下:DATA SEGMENTDB 87H,34H,0C2H,5FH DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL, DATA:0MOV BL, DATA:1ADD AL,

6、BL MOV AL,DATA:0MOV BL,DATA:1SUB AL,BL MOV AL,DATA:0MOV BL,DATA:1MUL BLMOV AL,DATA:0MOV BL,DATA:1DIV BLMOV AL,DATA:2MOV BL,DATA:3ADD AL,BLMOV AL,DATA:2MOV BL,DATA:3SUB AL,BL MOV AL,DATA:2MOV BL,DATA:3MUL BL MOV AL,DATA:2MOV BL,DATA:3DIV BLMOV AH,4CHINT 21HCODE ENDSEND START2、在数据段定义了两个多精度的有符号 16 进制数,

7、FIRST 和SECOND ,1)求两数的和与差,并将结果存放在 THIRD 为首地址的缓冲区中;2)如果把两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在 FORTH 为首地址的缓冲区中。试编程实现上述运算。FIRST DB 45 H,82H,96 H,57HSECOND DB 12 H,46H,83 H,45H编程计算得到结果如下表:16 进制结果 10 进制结果 FIRST +SECOND 57 C8 19 9C 57 28 79 02 FIRST -SECOND 33 3C 13 12 33 36 13 12 程序代码如下:程序代码如下:16 进制代码:进制代码:dat

8、a segmentfirst db 45H, 82H, 96H, 57Hsecond db 12H, 46H, 83H, 45Hthird db 4 dup(?)forth db 4 dup(?) data endscode segmentassume cs:code, ds:datastart:mov ax, datamov ds, axmov si, 3l1:lea di, firstadd di, simov al, dilea di, secondadd di, simov bl, diadc al, bllea di, thirdadd di, simov di, aldec sic

9、mp si, -1jne l1mov si, 3l2:lea di, firstadd di, simov al, dilea di, secondadd di, simov bl, disbb al, bllea di, forthadd di, simov di, aldec sicmp si, -1jne l2code endsend start10 进制代码:进制代码:data segmentfirst db 45H, 82H, 96H, 57Hsecond db 12H, 46H, 83H, 45Hthird db 4 dup(?) forth db 4 dup(?) data en

10、dscode segmentassume cs:code, ds:datastart:mov ax, datamov ds, axmov si, 3l1:lea di, firstadd di, simov al, dilea di, secondadd di, simov bl, diadc al, bldaalea di, thirdadd di, simov di, aldec sicmp si, -1jne l1mov si, 3l2:lea di, firstadd di, simov al, dilea di, secondadd di, simov bl, disbb al, b

11、ldaslea di, forthadd di, simov di, aldec sicmp si, -1jne l2code endsend start3、编程计算((Z +X*Y -328) -V)/ Y,其中 X、Y、Z、V 均为 16位带符号数,假设初始数据分别装入 X、Y、Z、V 单元,要求上式计算结果的商存入 AX,余数存入 DX 寄存器。同学自行给出初始值加以验证程序。首先实验中任选一组数据进行测试,选取的数据为X=0234H Y=09ABH Z=0ABCH V=0178H程序代码如下所示:程序代码如下所示:data segmentx dw 0234Hy dw 09ABHz dw

12、 0ABCHv dw 0178Hdata endscode segmentassume ds:data, cs:codestart:mov ax, datamov ds, axlea si, xmov ax, silea si, ymov bx, siimul bx lea si, zmov bx, siadd ax, bx add dx, 0sbb ax, 328sbb dx, 0lea si, vmov bx, sisbb ax, bxsbb dx, 0lea si, ymov bx, siidiv bxcode endsend start运行结果如下:结果 商 AX=0234H 余数 DX=07FCH经验算,结果正确。

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

当前位置:首页 > 中学教育 > 初中教育

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