实验二--数字处理程序(一) 下载本文

内容发布更新时间 : 2024/5/18 0:42:31星期一 下面是文章的全部内容请认真阅读。

主程序起始地址: [ 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=0000 2710 4)自行输入一组数据,复位IP=0,验证结果 R2R3=10(0000 000a) R6R7=10(0000 000a)

执行程序后:R4R5R6R7=(0000 0000 0000 0064) 2、调试除法程序:

1)复位IP=0,将程序执行到除法子程序入口 2)在入口信息输入数据: R4R5R6R7=10000 R2R3=100

3)程序执行到除法程序的RETF指令,用D0命令查看结 R6R7=0064 4)自选一组数据,自行验证除法程序

R4R5R6R7=0000 0000 0000 0064 R2R3=000a 执行程序后结果: R6R7=000a

四、 编程,R0R1=X*Y/Z

1)

自行编写一段程序,调用乘法和除法程序,计算上式

DO_WAIT:

MOV

AX,X

MOV MOV MOV MOV MOV MOV MOV CALL MOV MOV MOV MOV CALL MOV MOV MOV MOV JMP

R3,AX AX,X+2 R2,AX AX,Y R7,AX AX,Y+2 R6,AX

BMUL ;第一断点 AX,Z ;第二断点 R3,AX AX,Z+2 R2,AX BDIV AX,R7 R1,AX AX,R6 R0,AX

DO_WAIT ;第四断点

;第三断点

2) 执行程序,验证结果

程序执行到第一断点:R2R3=34127856

R6R7=65872143

程序执行到第二断点:R4R5R6R7=A00905CBD870788D 中间结果正确吗? 答:正确。

程序执行到第三断点:R2R3=5555 5555

R4R5R6R7=A00905CDB870788D

程序执行到第四断点:R6R7=E21C1067 中间结果正确吗? 答:正确。 3)

自行修改数据段定义的X,Y ,Z 的值,执行程序验证结果 X=2710 H

Y=000A H Z=0064 H R0R1=03E8 H