计算机硬件技术基础实验报告模板

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东北大学

计算机硬件技术基础实验报告

专业班级:机械0901班姓名:陈宫学号:20091833

实验题目:分支程序设计日期:2011年11月17日

实验目的

1)加深对循环结构的理解;

2)掌握循环程序的设计方法;

3)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

1、实验内容

设有3个单字节无符号数存放在BUF开始的缓冲区中,编写一个能将它们从大

到小重新排序的程序。

三、算法描述流程图

开始

设置数据段地址

首地址取X

加法X+Y

和保存到Z地址

结束

四、实验步骤

1. 输入源程序:

DSEG SEGMENT ;数据段

X DW 12H

Y DW 34H

Z DW ?

DSEG ENDS

CSEG SEGMENT ;代码段

ASSUME CS:CSEG,DS:DSEG

START: MOV AX,DSEG ;段寄存器初值

MOV DS,AX

MOV AX,X

ADD AX,Y ;求x+y和

MOV Z,AX ;保存

MOV AH,4CH

INT 21H

;

退

出CSEG ENDS

END START

2. 保存源文件,执行masm汇编源程序,生成obj目标文件,结果无错误。

3. 执行link连接程序,生成exe可执行文件,结果无错误。

4. 执行debug调试程序,使用t参数单步执行程序,在AL寄存器中得到计算结

果46H,结果正确,执行d参数命令察看Z所在的地址单元中的数据为0002

字节单元中存放46H。

五、实验结果

1. 执行masm编译源程序得到如下界面:

2. 执行link连接程序,生成exe可执行文件得到如下界面:

3. 执行debug调试程序,使用t参数单步执行程序,在AL寄存器中得到计算结

果46H,结果正确,得到如下界面:

4. 执行d参数命令察看Z所在的地址单元中的数据为0002字节单元中存放46H,

得到如下界面:

六、思考题

本程序没有考虑进位的情况。如果考虑可能产生的进位,应如何修改程序?

答:如果考虑进位情况,应该定义Z为DW类型,在程序中执行完ADD AL,Y后,执行ADDC指令。

七、扩展题

设X和Y均为三字节无符号数,编制程序求其和,并将结果放置在Z开始的存储单元。

答:因为X和Y都是三字节的无符号数,所以要给Z定义三个字节的存储空间。具体程序如下:

DSEG SEGMENT ;数据段

X DB 12H,34H,56H

Y DB 34H,56H,78H

Z DB 3 DUP(?)

DSEG ENDS

CSEG SEGMENT ;代码段

ASSUME CS:CSEG,DS:DSEG

START: MOV AX,DSEG ;段寄存器初值

MOV DS,AX

MOV AL,X

ADD AL,Y ;求x+y和

MOV Z,AL ;保存

MOV AL,X+1

ADC AL,Y+1 ;求x+y和

MOV Z+1,AL ;保存

MOV AL,X+2

ADC AL,Y+2 ;求x+y和

MOV Z+2,AL ;保存

MOV AH,4CH

INT 21H ;程序结束退出

CSEG ENDS

执行debug调试程序,执行d参数命令,在Z对应的存储单元中得到计算结果468ACEH,结果正确。

八、实验心得

理解了汇编语言中编程的基本步骤,掌握了通过地址对数据赋值的方法。掌握汇编语言编制基本顺序结构的算法,包括地址取值和加法的算法步骤等。这个实验,使我可以在编程中认识到直接通过CPU寄存器地址赋值可以大大提高了程序效率,但我要继续练习熟读汇编语言代码的能力。

相关文档
最新文档