资源描述
实验六 顺序程序设计
一、预习内容
1.常用工具软件MASM、LINK和DEBUG的使用
2.完整程序设计方法的格式
3.汇编语言顺序结构程序的设计方法
二、目的要求
1.继续熟悉常用工具软件MASM、LINK和DEBUG的使用
2.继续熟悉完整程序设计方法的格式
3.学习与掌握汇编语言顺序结构程序的设计方法
三、实验内容
编程实现datax双字除以字datay(用div),并且把商存入quotient字单元,把余数存入remainder字单元(具体数值可自行确定)。并且用debug查看程序的运行结果,检查程序运行结果的正确性。
DSEG SEGMENT
datax dd 956123h
datay dw 123h
quotient dw ?
remainder dw ?
DSEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG
start: mov ax, dseg
mov ds, ax
mov ax,word ptr datax
mov dx,datay[2]
div datay
mov quotient,ax
mov remainder,dx
mov ax, 4c00h
int 21h
CSEG ENDS
end start
实验步骤:
1.用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在c:\masm50下,注意保存时将文件扩展名改为.asm(如lab2.asm)。
2.用masm对源文件进行汇编,产生.obj(如lab2.obj)文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。
3.用 link将.obj文件连接成可执行的.exe文件(lab2.exe)。
4.直接运行link产生的.exe文件。
5.用debug调试程序,单步执行程序,并记录黑体部分单步执行后ax,dx,cs,ip寄存器以及标志寄存器的值.
6.在debug状态下,用“a+偏移地址”的方式将程序的div 改为idiv再单步执行黑体部分,对比步骤5的结果,查看有何变化,并记录。
7.修改源程序实现双字datax 与字datay的无符号乘法。
四、实验报告或作业
1.分析程序,画出程序流程图。
2.汇编,连接及调试时产生的错误,其原因及解决办法。
3.步骤5的结果记录。
4.步骤6的结果记录,并分析发生变化的原因。
5.思考:
1) 指令mov dx,datax[2] 改写成 mov dx,[datax+2] 经过汇编后,二者是否相同,为什么?
2) 如何实现双字datax 与字datay的乘法,写出完整的源程序。
展开阅读全文