实验二数字处理程序一文档格式.docx

上传人:b****5 文档编号:20569732 上传时间:2023-01-24 格式:DOCX 页数:9 大小:106KB
下载 相关 举报
实验二数字处理程序一文档格式.docx_第1页
第1页 / 共9页
实验二数字处理程序一文档格式.docx_第2页
第2页 / 共9页
实验二数字处理程序一文档格式.docx_第3页
第3页 / 共9页
实验二数字处理程序一文档格式.docx_第4页
第4页 / 共9页
实验二数字处理程序一文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

实验二数字处理程序一文档格式.docx

《实验二数字处理程序一文档格式.docx》由会员分享,可在线阅读,更多相关《实验二数字处理程序一文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

实验二数字处理程序一文档格式.docx

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]

乘法程序起始地址:

0013]

乘法程序结尾地址:

0066]

除法程序起始地址:

[07AD:

0067]

除法程序结尾地址:

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分得的单元地址:

000E~07AA:

000F

X分得的地址:

0010~07AA:

0013

X双字数据存放的顺序:

单元号地址:

0010内容:

0X78

单元号地址:

0011内容:

0X56

0012内容:

0X34

0013内容:

0X12

Y分得的地址:

0014~07AA:

0017

Y双字数据存放的顺序:

0014内容:

0X21

0015内容:

0X43

0016内容:

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;

第二断点

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1