微机原理实验,顺序实验_第1页
微机原理实验,顺序实验_第2页
微机原理实验,顺序实验_第3页
微机原理实验,顺序实验_第4页
微机原理实验,顺序实验_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、西安交通大学实验报告课程:微机原理与接口技术实验 实验名称:顺序程序设计 第 1页 共 页系 别: 理学院应用物理系 实 验 日 期 2016年11月19日专业班级: 应物42班 组别_ 实 验 报 告 日 期 2016年 月 日姓 名: 茹世浩 学号: 2140903034 报 告 退 发 ( 订正 、 重做)1. 实验目的学习8086汇编语言程序的基本结构和顺序程序设计的基本方法。2. 实验设备微型计算机、MASM.EXE、LINK.EXE、TD.EXE3. 实验原理顺序程序是控制流仅有一个走向的程序,它主要用于解决一些无需进行判断分支,也无需循环执行的简单问题。本节的实验内容与乘法和除法

2、运算有关。无符号数乘法运算使用MUL指令,有符号数乘法运算使用IMUL指令。乘法运算属于隐含操作数的运算,因此在使用乘法指令前,需要先将乘数放入AL(8位乘法)或AX(16位乘法)中。乘法指令执行后,乘积在AX(8位乘法)或DX:AX(16位乘法)中。无符号数除法运算使用DIV指令,有符号数除法运算使用IDIV指令。除法运算属于隐含操作数的运算,因此在使用除法指令前,需要先将被除数放入AX(8位除法)或DX:AX(16位除法)中。当除数为8位时,被除数应为16位;除数为16位时,被除数应为32位。对无符号数除法,当被除数字长不够时,高位部分可直接补0;而对有符号数除法,当被除数字长不够时,必须

3、使用符号扩展指令进行扩展。除法运算执行后,结果在AX(8位除法)或DX:AX(16位除法),其中AL(8位除法)或AX(16位除法)中是商,AH(8位除法)或DX(16位除法)中是余数。4. 实验内容在NUM变量中定义了5个有符号数(字节类型),分别是U= 09H,V=16H,W=04H,X=17H,Y=05H,计算(U+V-W*X)/Y,将结果显示在屏幕上。程序流程图如图 11。NUM=U,NUM+1=V,NUM+2=W,NUM+3=X,NUM+4=Y第一步:计算W*X1. NUM+2AL(数据W送AL)2. AL*NUM+3AL(W*X乘积送AL)3.ALBL(乘积备份到BL)第二步:计算

4、U+V-W*X1. NUMAL(数据U送AL)2. AL+NUM+1AL(U+V之和送到AL)3. AL-BLAL(U+V-W*X,结果送到AL)第三步:计算(U+V-W*X)/Y1. AL符号扩展到AX2. AX / NUM+4AX (U+V-W*X)/Y,商在AL中)第四步:显示结果的高4位1. AL中的结果暂存到BL 2. AL逻辑右移4位(取高4位)3. AL的内容转换成ASCII码4. 显示第五步:显示结果的低4位1. BL中暂存的结果送到AL 2. 保留AL中低4位,高4位清03. AL的内容转换成ASCII码4. 显示开始返回DOS图 Error! No text of spec

5、ified style in document.1顺序程序的程序流程图程序框架如下:DSEG SEGMENTNUM DB 09H,16H,04H,17H,05H ;定义U,V,W,X,YDSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEG MOV DS,AX计算W*X计算U+V-W*X计算(U+V-W*X)/Y的指令序列显示结果的高4位显示结果的低4位返回DOS的指令序列CSEG ENDS END START根据程序框架输入源程序,然后编译、连接、执行,观察执行结果。代码:DSEG SEGMENTNUM DB 09H,16

6、H,04H,17H,05HDSEG ENDSCSEG SEGMENT ASSUME CS:CSEG, DS:DSEGSTART: MOV AX,DSEG MOV DS,AX MOV AL,NUM+2 MOV BL,NUM+3 IMUL BL MOV BL,AL MOV AL,NUM ADD AL,NUM+1 SUB AL,BL CBW MOV CL,NUM+4 IDIV CL MOV BL,AL MOV CL,4 SHR AL,CL CMP AL,0AH JB A1 ADD AL,07HA1:ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV AL,BL SHL

7、 AL,CL SHR AL,CL CMP AL,0AH JB A2A2:ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV AH,4CH INT 21HCSEG ENDS END START编译链接:运算结果5. 实验习题将数据改为U=0ABH,V=0EFH,W=12H,X=10H,Y=05H,上机验证结果是否正确?问题出在何处,应如何解决?问题:溢出代码:DSEG SEGMENTNUM DB 0ABH,0EFH,12H,10H,05HDSEG ENDSCSEG SEGMENT ASSUME CS:CSEG, DS:DSEGSTART: MOV AX,DSEG MOV DS,AX MOV AL,NUM+2 CBW MOV BX,AX MOV AL,NUM+3 CBW IMUL BX MOV BX,AX MOV AL,NUM CBW MOV DX,AX MOV AL,NUM+1 CBW ADD AX,DX SUB AX,BX IDIV BYTE PTRNUM+4 MOV BL,AL MOV CL,4 SHR AL,CL CMP AL,0AH JB A1 ADD AL,07HA1:ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV AL,BL

温馨提示

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

评论

0/150

提交评论