下载此文档

微原软件实验A.docx


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
一实验目的
,编译,连接和执行的全过程;
.
二实验任务及内容
,输入以下汇编语言源程序
,连接形成可执行文件.
DEBUG 将可执行文件调入,并进行调试.
(1)用 D 命令观察数据区在内存中的具体内容,记录单元 A 和 B 的具体地址.
(2)用 U 命令对目标代码反汇编,
位置, 并记录这个起始地址.
(3)用 T
:它们是写在什么单元,具体内容是什么; 并判断结果是
否正确.
(4)在子程序 SUB1 的入口处设一断点,用 G 命令执行程序. 在断点处观察堆
栈的内容,比较堆栈的内容和程序返回地址是否一致.
(5)用 E 命令修改单元 A,B 的内容,重新执行程序,并记录结果.
(6)用 M 命令和 A 命令对程序进行修改: 将主程序中最后两条指令(ADD 和
ADC) 修改为一条 CALL SUB1 指令,重新执行程序.
(7)退出 DEBUG.
,把源程序最后一句中的 STAR ,
并用 DEBUG U 命令时,显示的结果与前一次(未加 STAR) 的结果
有何不同?
三画出程序流程图
开始

各段初始化
数据A自乘并保存结果
数据B自乘并保存结果
数据A、B相乘并保存结果
计算完成后,所有结果相加
结束
四给出源程序
DAT SEGMENT ;数据段定义
A DB 20 ;(自定)
B DB 15 ;(自定)
Y DB 3 DUP(0)
Z DB 0,0 ;为各个变量分配内存空间
DAT ENDS
STA SEGMENT STACK ;堆栈段定义
DW 50 DUP(?)
STA ENDS
COD SEGMENT ;代码段定义
ASSUME CS:COD,DS:DAT
STAR PROC FAR
PUSH DS ;ds寄存器保护
XOR AX,AX ;ax寄存器清空,影响标志位
PUSH AX ;ax压栈
MOV AX,DAT
MOV DS,AX ;程序初始化,给DS赋初值
MOV AX,STA
MOV SS,AX ;给SS赋初值
MOV AL,A
MOV Z,AL
MOV Z+1,AL
CALL SUB1 ;将AL中的数据 A自乘
MOV AL,B
MOV Z,AL
MOV Z+1,AL
CALL SUB1 ;将AL中的数据B自乘
MOV AL,A
MOV Z,AL
MOV AL,B
MOV Z+1,AL
CALL SUB1 ;将A和B相乘
ADD WORD PTR Y,AX ;A*A+B*B+2*A*B
ADC BYTE PTR[Y+2],0
RET
STAR ENDP
SUB1 PROC
MOV AL,Z
MOV AH,Z+1
MUL AH ; AX=AH*AL
ADD WORD PTR

微原软件实验A 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小1.14 MB
  • 时间2017-06-26