实验二数字处理程序一.docx
- 文档编号:7458176
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:9
- 大小:106KB
实验二数字处理程序一.docx
《实验二数字处理程序一.docx》由会员分享,可在线阅读,更多相关《实验二数字处理程序一.docx(9页珍藏版)》请在冰豆网上搜索。
实验二数字处理程序一
微机原理实验(报告)
题目实验二
学院信息工程
专业信息工程
学号
姓名
指导教师乐金松
(2016年4月17日)
实验二数据处理程序
(一)
实验目的:
1、进一步学习、掌握汇编程序调试方法
2、弄清子程序调用和返回过程
3、通过实验调试乘法、除法程序,弄清多字节乘除法程序的基本算法和
程序设计方法
实验内容:
1、源程序的编辑
2、源程序的剪辑、编译、链接
3、汇编程序调试,完成相关数据的记录和分析
实验步骤:
一、程序剪辑和编辑
1、下面是一段主程序模板,请将L8086软件包中的乘法和除法程序的主体部分拷贝粘贴在指定的位置,以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
;---------------------------------------------------------
;definecodesegment
PROGRAMSEGMENT
ASSUMECS:
PROGRAM,DS:
DATA,SS:
STACK
;*******************************************************
MAINPROCFAR
START:
PUSHDS;returnDOSstandardprogram
MOVAX,0
PUSHAX
MOVAX,DATA;setDS
MOVDS,AX
;--------------主循环程序-------------------------------------------
DO_WAIT:
CALLBMUL
CALLBDIV
;CALLKEY_SCAN
;CALLBCTD
;CALLDELAY
JMPDO_WAIT
RET
MAINENDP
;----------------以下为过程子程序------------------------------------
;===============R2R3*R6R7=R4R5R6R7==================
BMULPROCNEAR
;……
BMULENDP
;------------R4R5R6R7/R2R3=R6R7--------------------
BDIVPROCNEAR
;……
BDIVENDP
;---------------二翻十程序--------------------------------
BCTDPROCNEAR
RET
BCTDENDP
;-----------------软件延时----------------------------------
DELAYPROCNEAR
RET
DELAYENDP
;-------------------键盘扫描--------------------------------
KEY_SCANPROCNEAR
RET
KEY_SCANENDP
;------------------------------------------------------------
PROGRAMENDS
ENDSTART
;---------------------------------------------------------------------------------------2、将程序编译连接成可执行文件。
二、程序载入
1、用DEBUG命令将程序载入到内存
2、用反汇编U命令观察和记录以下信息:
主程序起始地址:
[07AD:
0000]
主程序结尾地址:
[07AD:
0012]
乘法程序起始地址:
[07AD:
0013]
乘法程序结尾地址:
[07AD:
0066]
除法程序起始地址:
[07AD:
0067]
除法程序结尾地址:
[07AD:
00CA]
代码段段地址:
CS=07AD
用户数据段段地址:
DATA=07AA
当前系统数据地段段地址:
DS=075A
乘法子程序入口地址:
BMUL=0013
除法子程序入口地址:
BDIV=0067
3、用R命令观察记录一下信息
DS=075A
ES=075A
SS=076A
SP=0400
4、执行程序G0A回车,用D0命令观察并记录以下信息
R0分得的单元地址:
07AA:
0000~07AA:
0001
R7分得的单元地址:
07AA:
000E~07AA:
000F
X分得的地址:
07AA:
0010~07AA:
0013
X双字数据存放的顺序:
单元号地址:
0010内容:
0X78
单元号地址:
0011内容:
0X56
单元号地址:
0012内容:
0X34
单元号地址:
0013内容:
0X12
Y分得的地址:
07AA:
0014~07AA:
0017
Y双字数据存放的顺序:
单元号地址:
0014内容:
0X21
单元号地址:
0015内容:
0X43
单元号地址:
0016内容:
0X56
单元号地址:
0017内容:
0X87
三、程序的调试
1、调试乘法程序:
1)程序执行到乘法子程序入口
2)在入口参数输入:
R2R3=100
R6R7=100
3)执行程序到乘法程序RETF指令处,查看结果
R4R5R6R7=00002710
4)自行输入一组数据,复位IP=0,验证结果
R2R3=10(0000000a)
R6R7=10(0000000a)
执行程序后:
R4R5R6R7=(0000000000000064)
2、调试除法程序:
1)复位IP=0,将程序执行到除法子程序入口
2)在入口信息输入数据:
R4R5R6R7=10000
R2R3=100
3)程序执行到除法程序的RETF指令,用D0命令查看结
R6R7=0064
4)自选一组数据,自行验证除法程序
R4R5R6R7=0000000000000064
R2R3=000a
执行程序后结果:
R6R7=000a
四、编程,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;第三断点
MOVAX,R7
MOVR1,AX
MOVAX,R6
MOVR0,AX
JMPDO_WAIT;第四断点
2)执行程序,验证结果
程序执行到第一断点:
R2R3=34127856
R6R7=65872143
程序执行到第二断点:
R4R5R6R7=A00905CBD870788D
中间结果正确吗?
答:
正确。
程序执行到第三断点:
R2R3=55555555
R4R5R6R7=A00905CDB870788D
程序执行到第四断点:
R6R7=E21C1067
中间结果正确吗?
答:
正确。
3)自行修改数据段定义的X,Y,Z的值,执行程序验证结果
X=2710H
Y=000AH
Z=0064H
R0R1=03E8H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 数字处理程序一 实验 数字 处理 程序