第二次试验报告最终版_第1页
第二次试验报告最终版_第2页
第二次试验报告最终版_第3页
第二次试验报告最终版_第4页
第二次试验报告最终版_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上微机原理及应用实验 课程名称_微机原理及应用实验_学生学院 信息工程学院 专业班级 学 号 学生姓名 指导老师 乐金松 2016年 05 月 11 日实验二 数据处理程序(一)实验目的:1、进一步学习、掌握汇编程序调试方法2、弄清子程序调用和返回过程 3、通过实验调试乘法、除法程序,弄清多字节乘除法程序的基本算法和程序设计方法实验内容:1、 源程序的编辑2、 源程序的剪辑、编译、链接3、 汇编程序调试,完成相关数据的记录和分析实验步骤:一、程序剪辑和编辑1、 下面是一段主程序模板,请将L8086软件包中的乘法和除法程序的主体部分拷贝粘贴在指定的位置,以MAIN.ASM

2、文件名保存;- STACK SEGMENT STACK 'STACK' DB 1024 DUP (0)STACK ENDS;-;define data segmentDATA SEGMENT;- ;地址分配 R0 DW (?);0000H R1 DW (?);0002H R2 DW (?);0004H R3 DW (?);0006H R4 DW (?);0008H R5 DW (?);000AH R6 DW (?);000CH R7 DW (?);000EH;-XDDH;0010H003HYDDH;0014H0017HZDDH;0018H001BH;- buffer0 DB (

3、?);001CH buffer1 DB (?) buffer2 DB (?) buffer3 DB (?) buffer4 DB (?) buffer5 DB (?) buffer6 DB (?) buffer7 DB (?);-DATA ENDS;-;define code segmentPROGRAM SEGMENTASSUME CS:PROGRAM, DS:DATA, SS:STACK;*MAIN PROC FARSTART: PUSH DS ;return DOS standard program MOV AX,0 PUSH AX MOV AX,DATA ;set DS MOV DS,

4、AX;-主循环程序-DO_WAIT: CALLBMUL CALLBDIV;CALLKEY_SCAN;CALLBCTD;CALLDELAYJMPDO_WAIT RETMAIN ENDP;-以下为过程子程序-;=R2R3*R6R7=R4R5R6R7= BMULPROC NEAR ; BMULENDP;-R4R5R6R7/R2R3=R6R7-BDIVPROC NEAR ; BDIVENDP ;-二翻十程序-BCTDPROC NEARRETBCTDENDP;-软件延时-DELAYPROC NEAR RETDELAYENDP;-键盘扫描-KEY_SCANPROC NEARRETKEY_SCANENDP;

5、-PROGRAM ENDS END START;-2、将程序编译连接成可执行文件。二、程序载入 1、 用DEBUG命令将程序载入到内存2、 用反汇编U命令观察和记录以下信息:主程序起始地址: 07AD : 0000 主程序结尾地址: 07AD : 001D 乘法程序起始地址: 07AD : 0013 乘法程序结尾地址: 07AD : 0066 除法程序起始地址: 07AD : 0067 除法程序结尾地址: 07AD : 00CA 代码段段地址: CS=07AD用户数据段段地址: DATA=07AA当前系统数据地段段地址: DS=075A乘法子程序入口地址: BMUL=0013除法子程序入口地址

6、: BDIV=00673、 用R命令观察记录一下信息DS=075AES=075ASS=076ASP=04004、 执行程序G0A回车,用D0命令观察并记录以下信息 R0分得的单元地址:07AA:000007AA:0001R7分得的单元地址:07AA:000E07AA:000FX分得的地址:07AA:001007AA:0013X双字数据存放的顺序:单元号地址:0010 内容:0X78单元号地址:0011 内容:0X56单元号地址:0012 内容:0X34单元号地址:0013 内容:0X12Y分得的地址:07AA:001407AA:0017Y双字数据存放的顺序:单元号地址:0014 内容:0X21

7、单元号地址:0015 内容:0X43单元号地址:0016 内容:0X65单元号地址:0017 内容:0X87三、程序的调试1、调试乘法程序:1) 程序执行到乘法子程序入口2) 在入口参数输入:R2R3=100 0000 6400 R6R7=100 0000 6400 3) 执行程序到乘法程序RETF指令处,查看结果R4R5R6R7=0000 0000 0000 1027 4) 自行输入一组数据,复位IP=0,验证结果 R2R3=10 (0000 0a00) R6R7=10 (0000 0a00) 执行程序后:R4R5R6R7=0000 0000 0000 6400 2、调试除法程序:1) 复位

8、IP=0,将程序执行到除法子程序入口2) 在入口信息输入数据: R4R5R6R7=10000 R2R3=1003) 程序执行到除法程序的RETF指令,用D0命令查看结 R6R7=0000 64004) 自选一组数据,自行验证除法程序 R4R5R6R7=0000 0000 0000 1E00 R2R3=0000 0600 执行程序后结果 R6R7=0000 0500四、编程,R0R1=X*Y/Z1)自行编写一段程序,调用乘法和除法程序,计算上式 DO_WAIT:MOVAX,XMOVR3,AXMOVAX,X+2MOVR2,AXMOVAX,YMOVR7,AXMOVAX,Y+2MOVR6,AXCALL

9、BMUL ;第一断点MOVAX,Z ;第二断点MOVR3,AXMOVAX,Z+2MOVR2,AXCALLBDIV ;第三断点MOVAX,R7MOVR1,AXMOVAX,R6MOVR0,AX JMP DO_WAIT ;第四断点1、执行程序,验证结果程序执行到第一断点:R2R3=(即是0x)R6R7=(即是0x)程序执行到第二断点:R4R5R6R7= A00905CDBD (即是0x09A0CD0570B88D78)中间结果正确吗? 答:运行的中间结果正确,0x*0x=0x09a0cd0570b88d78程序执行到第四断点:R6R7=1CE2 6710程序执行到第三断点:R2R3= (即是0x) R4R5R6R7= A00905CDBD (即是0x09A0CD0570B88D78)程序执行到第四断点:R6R7=E21C1067(即

温馨提示

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

评论

0/150

提交评论