实验三 数字处理程序(二)

上传人:jiups****uk12 文档编号:37703629 上传时间:2018-04-21 格式:DOC 页数:11 大小:176KB
返回 下载 相关 举报
实验三  数字处理程序(二)_第1页
第1页 / 共11页
实验三  数字处理程序(二)_第2页
第2页 / 共11页
实验三  数字处理程序(二)_第3页
第3页 / 共11页
实验三  数字处理程序(二)_第4页
第4页 / 共11页
实验三  数字处理程序(二)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《实验三 数字处理程序(二)》由会员分享,可在线阅读,更多相关《实验三 数字处理程序(二)(11页珍藏版)》请在金锄头文库上搜索。

1、 微机原理实验(报告)微机原理实验(报告)题 目 实验三三 学 院 信息工程 专 业 信息工程 学 号 姓 名 联络方式 指导教师 2017 年 4 月 24实验三 数据处理程序(二)实验目的:1、进一步学习、掌握汇编程序调试方法2、通过实验理解掌握 DOS 和 BIOS 功能程序调用方法3、通过实验调试二翻十、十翻二子程序,弄清数值转换的有关算法和程序设计方法4、通过实验调试显示子程序,掌握显示程序的设计和调用方法 实验内容:1、源程序的编辑2、源程序的剪辑、编译、链接3、汇编程序调试,完成相关数据的记录和分析实验步骤:一、程序剪辑和编辑1、下面是一段主程序模板,接实验二,请将 L8086

2、软件包中BCTD.ASM,DCTB.ASM,SAMPLE.ASM 中的 DISPLAY 子程序拷贝到制定位置,定义成 NEAR 过程。 以 MAIN.ASM 文件名保存;- STACK SEGMENT STACK STACKDB 1024 DUP (0)STACK ENDS;-;define data segmentDATA SEGMENT;- ;地址分配R0 DW (?);0000HR1 DW (?);0002HR2 DW (?);0004HR3 DW (?);0006HR4 DW (?);0008HR5 DW (?);000AHR6 DW (?);000CHR7 DW (?);000EH;

3、-XDD 12345678H;0010H003HYDD 87654321H;0014H0017HZDD 55555555H;0018H001BH;-buffer0 DB (?);001CHbuffer1 DB (?)buffer2 DB (?)buffer3 DB (?)buffer4 DB (?)buffer5 DB (?)buffer6 DB (?)buffer7 DB (?);-DATA ENDS;-;define es segmentVIDEO SEGMENT AT 0B800HWD_BUFFER LABEL WORDV_BUFF DB 25*80*2 DUP (?)VIDEO END

4、S;-;define code segmentPROGRAM SEGMENTASSUME: CS:PROGRAM, DS:DATA, SS:STACK, ES:VIDEO;*MAIN PROC FARSTART: PUSH DS ;return DOS standard programMOV AX,0PUSH AXMOV AX,DATA ;set DSMOV DS,AX;-主循环程序-DO_WAIT:CALLBMULCALLBDIVCALLBCTDCALLDISPLAYCALLDCTB;CALLKEY_SCAN;CALLDCTB;CALLDELAYJMPDO_WAITRETMAIN ENDP;

5、-以下为过程子程序-;=R2R3*R6R7=R4R5R6R7= BMULPROC NEAR; BMULENDP;-R4R5R6R7/R2R3=R6R7-BDIVPROC NEAR; BDIVENDP ;-二翻十程序-BCTDPROC NEARRETBCTDENDP;- 十翻二程序-DCTBPROC NEARRETDCTBENDP;-软件延时-DELAYPROC NEAR RETDELAYENDP;-键盘扫描-KEY_SCANPROC NEARRETKEY_SCANENDP-;display a symbol;input: symbol=al; color=ah 属性 X XXX XXXX ;

6、闪烁 背景 字符颜色; row=ch 行号; col=cl 列号 ;use reg:AX,BX,CXDISPLAY PROC NEAR ;address of display;buffer=row*80*2+col*2PUSH BXPUSH CXPUSH AXMOV AL,160MUL CH ;ROW*80*2(160)=AXMOV BL,CLROL BL,1 ;BL*2MOV BH,0ADD BX,AXPOP AXMOV ES:WD_BUFFER+BX,AXPOP CXPOP BXRETDISPLAY ENDP;-PROGRAM ENDSEND START;-2、将程序编译连接成可执行文件。

7、二、程序载入 1、用 DEBUG 命令将程序载入到内存2、用反汇编 U 命令观察和记录以下信息:BCTD 起始地址: 07AD :0010 BCTD 结尾地址: 07AD :0012 DCTB 起始地址: 07AD :0016 DCTB 结尾地址: 07AD :0018 DISPLAY 起始地址: 07AD :0013 DISPLAY 结尾地址: 07AD :0015 三、程序的调试1、调试 BCTD 程序:1)程序执行到 BCTD 子程序入口2)在入口参数输入:R5R6R7 =FFFFH3)执行程序到乘法程序 RETF 指令处,查看结果(请截图)Buffer7-buffer0=24)自行输入

8、一组数据,复位 IP=0,验证结果R5R6R7=789546执行程序后:Buffer7-buffer0=3 2、调试 DCTB 程序:四、复位 IP=0,将程序执行到 DCTB 子程序入口1)在入口信息输入数据:buffer9buffer0 = 10000程序执行到除法程序的 RETF 指令,用 D0 命令查看结R1R0=000010272)自选一组数据,自行验证程序buffer9buffer0 = 12300执行程序后结果: R1R0= 05C814五、编程,R0R1=X*Y/Z1)自行编写一段程序,调用乘法和除法程序,计算上式DO_WAIT:MOVAX,XMOVR3,AXMOVAX,X+2

9、MOVR2,AXMOVAX,YMOVR7,AXMOVAX,Y+2MOVR6,AXCALLBMUL MOVAX,Z MOVR3,AXMOVAX,Z+2MOVR2,AXCALLBDIV ;R4R5R6R7/R2R3=R6R7MOV R5,0CALLBCTD ;第一断点MOV AL,DMOV AH,00001111B ;黑底白字MOV CX,0A0AHCALL DISPLAYMOV AL,AMOV AH,00001111B ;黑底白字MOV CX,0A0BHCALL DISPLAYMOV AL,TMOV AH,00001111B ;黑底白字MOV CX,0A0CHCALL DISPLAYMOV AL

10、,AMOV AH,00001111B ;黑底白字MOV CX,0A0DHCALL DISPLAYMOV AL,=MOV AH,00001111B ;黑底白字MOV CX,0A0EHCALL DISPLAY;-MOV AL,buffer4AND AL,0F0HMOV CL,4SHR AL,CLMOV AH,00001111B ;黑底白字MOV CX,0A0FHCALL DISPLAYMOV AL,buffer4AND AL,0FHMOV AH,00001111B ;黑底白字MOV CX,0A10HCALL DISPLAY;插入显示程序JMPDO_WAIT 2)在数据段输入 X,Y,Z 的值,程序执行到第一断点,查看十进制数的结果是否正确X=

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

当前位置:首页 > 行业资料 > 其它行业文档

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