资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
教学实验 课程名称_微机原理及应用实验_学生学院 信息工程学院 专业班级 学 号 学生姓名 指导老师 乐金松 2016年 05 月 11 日实验二 数据处理程序(一)实验目的:1、进一步学习、掌握汇编程序调试方法2、弄清子程序调用和返回过程 3、通过实验调试乘法、除法程序,弄清多字节乘除法程序的基本算法和程序设计方法实验内容:1、 源程序的编辑2、 源程序的剪辑、编译、链接3、 汇编程序调试,完成相关数据的记录和分析实验步骤:一、 程序剪辑和编辑1、 下面是一段主程序模板,请将L8086软件包中的乘法和除法程序的主体部分拷贝粘贴在指定的位置,以MAIN.ASM文件名保存;- 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;-XDD12345678H;0010H003HYDD87654321H;0014H0017HZDD55555555H;0018H001BH;- buffer0 DB (?);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,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;-PROGRAM ENDS END START;-2、将程序编译连接成可执行文件。二、 程序载入 1、 用DEBUG命令将程序载入到内存2、 用反汇编U命令观察和记录以下信息:主程序起始地址: 145E : 0000 主程序结尾地址: 145E : 001E 乘法程序起始地址: 145E : 0013 乘法程序结尾地址: 145E : 005C 除法程序起始地址: 145E : 005D 除法程序结尾地址: 145E : 00B6 代码段段地址: CS=145E用户数据段段地址: DATA=145B当前系统数据地段段地址: DS=140B乘法子程序入口地址: BMUL=145E : 0013除法子程序入口地址: BDIV=145E : 005D3、 用R命令观察记录一下信息DS=145BES=140BSS=141BSP=03FA4、 执行程序G0A回车,用D0命令观察并记录以下信息R0分得的单元地址:145B:0000 145B:0001R7分得的单元地址:145B:000E 145B:000FX分得的地址:145B:0010 145B:0013X双字数据存放的顺序:单元号地址: 0010 内容:0X78单元号地址: 0011 内容:0X56单元号地址: 0012 内容:0X34单元号地址: 0013 内容:0X12Y分得的地址: 145B:0014 145B:0017Y双字数据存放的顺序:单元号地址:0014 内容:0X21单元号地址: 0015 内容:0X43单元号地址: 0016 内容:0X65单元号地址: 0017 内容:0X87三、 程序的调试1、调试乘法程序:1) 程序执行到乘法子程序入口2) 在入口参数输入:R2R3=100 0000 6400 R6R7=100 0000 64003) 执行程序到乘法程序RETF指令处,查看结果 R4R5R6R7= 0X 0000 0000 0000 10274) 自行输入一组数据,复位IP=0,验证结果 R2R3=6 0000 0600 R6R7=5 0000 0500 执行程序后:R4R5R6R7= 0000 0000 0000 1E00 2、调试除法程序:1) 复位IP=0,将程序执行到除法子程序入口2) 在入口信息输入数据: R4R5R6R7=10000 R2R3=100 3) 程序执行到除法程序的RETF指令,用D0命令查看结 R6R7= 0000 64004) 自选一组数据,自行验证除法程序 R4R5R6R7=0000 0000 0000 1E00 R2R3=0000 0600 执行程序后结果: R6R7= 0000 0500四、 编程,R0R1=X*Y/Z=R2R3*R6R7/R2R31) 自行编写一段程序,调用乘法和除法程序,计算上式 DO_WAIT:MOVAX,XMOVR3,AXMOVAX,X+2MOVR2,AXMOVA
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号