实验三数字处理程序二.docx
- 文档编号:15663704
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:13
- 大小:74.57KB
实验三数字处理程序二.docx
《实验三数字处理程序二.docx》由会员分享,可在线阅读,更多相关《实验三数字处理程序二.docx(13页珍藏版)》请在冰点文库上搜索。
实验三数字处理程序二
微机原理实验(报告)
题目实验三
学院信息工程
专业信息工程
学号
姓名
联络方式
指导教师
2017年4月24
实验三数据处理程序
(二)
实验目的:
1、进一步学习、掌握汇编程序调试方法
2、通过实验理解掌握DOS和BIOS功能程序调用方法
3、通过实验调试二翻十、十翻二子程序,弄清数值转换的有关算法和程
序设计方法
4、通过实验调试显示子程序,掌握显示程序的设计和调用方法
实验内容:
1、源程序的编辑
2、源程序的剪辑、编译、链接
3、汇编程序调试,完成相关数据的记录和分析
实验步骤:
一、程序剪辑和编辑
1、下面是一段主程序模板,接实验二,请将L8086软件包中BCTD.ASM,DCTB.ASM,SAMPLE.ASM中的DISPLAY子程序拷贝到制定位置,定义成NEAR过程。
以MAIN.ASM文件名保存
;-------------------------------------------------------------------------
STACKSEGMENTSTACK'STACK'
DB1024DUP(0)
STACKENDS
;----------------------------------------------------------------------------
;definedatasegment
DATASEGMENT
;-------------------------------------------;地址分配
R0DW(?
);0000H
R1DW(?
);0002H
R2DW(?
);0004H
R3DW(?
);0006H
R4DW(?
);0008H
R5DW(?
);000AH
R6DW(?
);000CH
R7DW(?
);000EH
;----------------------------------------------------------------------------------
XDD12345678H;0010H~003H
YDD87654321H;0014H~0017H
ZDD55555555H;0018H~001BH
;------------------------------------------------------------------------------------
buffer0DB(?
);001CH
buffer1DB(?
)
buffer2DB(?
)
buffer3DB(?
)
buffer4DB(?
)
buffer5DB(?
)
buffer6DB(?
)
buffer7DB(?
)
;----------------------------------------------------
DATAENDS
;---------------------------------------------------------
;defineessegment
VIDEOSEGMENTAT0B800H
WD_BUFFERLABELWORD
V_BUFFDB25*80*2DUP(?
)
VIDEOENDS
;------------------------------------
;definecodesegment
PROGRAMSEGMENT
ASSUME:
CS:
PROGRAM,DS:
DATA,SS:
STACK,ES:
VIDEO
;*******************************************************
MAINPROCFAR
START:
PUSHDS;returnDOSstandardprogram
MOVAX,0
PUSHAX
MOVAX,DATA;setDS
MOVDS,AX
;--------------主循环程序-------------------------------------------
DO_WAIT:
CALLBMUL
CALLBDIV
CALLBCTD
CALLDISPLAY
CALLDCTB
;CALLKEY_SCAN
;CALLDCTB
;CALLDELAY
JMPDO_WAIT
RET
MAINENDP
;----------------以下为过程子程序------------------------------------
;===============R2R3*R6R7=R4R5R6R7==================
BMULPROCNEAR
;……
BMULENDP
;------------R4R5R6R7/R2R3=R6R7--------------------
BDIVPROCNEAR
;……
BDIVENDP
;---------------二翻十程序--------------------------------
BCTDPROCNEAR
RET
BCTDENDP
;---------------十翻二程序--------------------------------
DCTBPROCNEAR
RET
DCTBENDP
;-----------------软件延时----------------------------------
DELAYPROCNEAR
RET
DELAYENDP
;-------------------键盘扫描--------------------------------
KEY_SCANPROCNEAR
RET
KEY_SCANENDP
-------------------------------------------------------
;displayasymbol
;input:
symbol=al
;color=ah属性XXXXXXXX
;闪烁背景字符颜色
;row=ch行号
;col=cl列号
;usereg:
AX,BX,CX
DISPLAYPROCNEAR;addressofdisplay
;buffer=row*80*2+col*2
PUSHBX
PUSHCX
PUSHAX
MOVAL,160
MULCH;ROW*80*2(160)=AX
MOVBL,CL
ROLBL,1;BL*2
MOVBH,0
ADDBX,AX
POPAX
MOVES:
[WD_BUFFER+BX],AX
POPCX
POPBX
RET
DISPLAYENDP
;------------------------------------------------------------
PROGRAMENDS
ENDSTART
;---------------------------------------------------------------------------------------2、将程序编译连接成可执行文件。
二、程序载入
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=FFFFH
3)执行程序到乘法程序RETF指令处,查看结果(请截图)
Buffer7-buffer0=2
4)自行输入一组数据,复位IP=0,验证结果
R5R6R7=789546
执行程序后:
Buffer7-buffer0=3
2、调试DCTB程序:
四、复位IP=0,将程序执行到DCTB子程序入口
1)在入口信息输入数据:
buffer9—buffer0=10000
程序执行到除法程序的RETF指令,用D0命令查看结
R1R0=
2)自选一组数据,自行验证程序
buffer9—buffer0=12300
执行程序后结果:
R1R0=05C814
五、编程,R0R1=X*Y/Z
1)自行编写一段程序,调用乘法和除法程序,计算上式
DO_WAIT:
MOVAX,X
MOVR3,AX
MOVAX,X+2
MOVR2,AX
MOVAX,Y
MOVR7,AX
MOVAX,Y+2
MOVR6,AX
CALLBMUL
MOVAX,Z
MOVR3,AX
MOVAX,Z+2
MOVR2,AX
CALLBDIV;R4R5R6R7/R2R3=R6R7
MOVR5,0
CALLBCTD;第一断点
MOVAL,’D’
MOVAH,00001111B;黑底白字
MOVCX,0A0AH
CALLDISPLAY
MOVAL,’A’
MOVAH,00001111B;黑底白字
MOVCX,0A0BH
CALLDISPLAY
MOVAL,’T’
MOVAH,00001111B;黑底白字
MOVCX,0A0CH
CALLDISPLAY
MOVAL,’A’
MOVAH,00001111B;黑底白字
MOVCX,0A0DH
CALLDISPLAY
MOVAL,’=’
MOVAH,00001111B;黑底白字
MOVCX,0A0EH
CALLDISPLAY
;----------------------------------------------------------------
MOVAL,buffer4
ANDAL,0F0H
MOVCL,4
SHRAL,CL
MOVAH,00001111B;黑底白字
MOVCX,0A0FH
CALLDISPLAY
MOVAL,buffer4
ANDAL,0FH
MOVAH,00001111B;黑底白字
MOVCX,0A10H
CALLDISPLAY
;插入显示程序
JMPDO_WAIT
2)在数据段输入X,Y,Z的值,程序执行到第一断点,查看十进制数的结果是否正确
X=25BY=16BZ=5B
3)自行编写一段显示程序插入在主程序中,在第10行第10列开始是BUF4~BUF0共10位十进制数。
格式是
DATA=XXXXXXXXXX
参考程序如下:
MOVAL,’D’
MOVAH,00001111B;黑底白字
MOVCX,0A0AH
CALLDISPLAY
MOVAL,’A’
MOVAH,00001111B;黑底白字
MOVCX,0A0BH
CALLDISPLAY
MOVAL,’T’
MOVAH,00001111B;黑底白字
MOVCX,0A0CH
CALLDISPLAY
MOVAL,’A’
MOVAH,00001111B;黑底白字
MOVCX,0A0DH
CALLDISPLAY
MOVAL,’=’
MOVAH,00001111B;黑底白字
MOVCX,0A0EH
CALLDISPLAY
;----------------------------------------------------------------
MOVAL,buffer4
ANDAL,0F0H
MOVCL,4
SHRAL,CL
MOVAH,00001111B;黑底白字
MOVCX,0A0FH
CALLDISPLAY
MOVAL,buffer4
ANDAL,0FH
MOVAH,00001111B;黑底白字
MOVCX,0A10H
CALLDISPLAY
…..请继续写完并调试
4)全速G执行程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 数字 处理 程序
![提示](https://static.bingdoc.com/images/bang_tan.gif)