辽工大硬件实验报告1.docx

上传人:b****3 文档编号:3855686 上传时间:2022-11-25 格式:DOCX 页数:12 大小:124.74KB
下载 相关 举报
辽工大硬件实验报告1.docx_第1页
第1页 / 共12页
辽工大硬件实验报告1.docx_第2页
第2页 / 共12页
辽工大硬件实验报告1.docx_第3页
第3页 / 共12页
辽工大硬件实验报告1.docx_第4页
第4页 / 共12页
辽工大硬件实验报告1.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

辽工大硬件实验报告1.docx

《辽工大硬件实验报告1.docx》由会员分享,可在线阅读,更多相关《辽工大硬件实验报告1.docx(12页珍藏版)》请在冰豆网上搜索。

辽工大硬件实验报告1.docx

辽工大硬件实验报告1

成绩

辽宁工程技术大学上机实验报告

课程名称

计算机硬件基础

实验题目

简单程序设计

院系

软件学院

专业

软件工程

班级

12-3

姓名

邢少强

学号

1120010325

实验日期

2014.11.20

实验

目的

1.熟练掌握宏汇编程序设计的思想。

2.掌握顺序程序设计的思想及方法。

3.熟练掌握分支程序的结构。

4.掌握分支程序设计的思想、方法及上机调试过程。

实验

准备

预习和上网查找一下内容:

1.8086/8088宏汇编指令及伪指令

2.汇编语言程序设计的步骤。

分析问题确定算法绘制程序框图

分配存储空间和工作单元编写汇编语言源程序

静态检查上机调试

3.顺序程序设计的思想和方法。

4.分支程序设计的思想和方法。

(1)分支程序根据条件是真或假决定执行与否

(2)判断的条件是各种指令,如CMP、TEST等执行后形成的状态标志

(3)用转移指令JCC和JMP可以实现分支控制

(4)分支结构有:

①单分支结构②双分支结构③多分支结构

实验

进度

本次共有3个练习,完成3个。

 

实验

内容

 

 

在运行程序之前,先配置汇编语言集成器软件,然后在编写程序

1.编写一个程序,计算表达式(XY-Z)/X的值,其中:

X、Y、Z均为16位带符号数,存放在数据段中,要求将表达式的计算结果存放在数据段中的RESULT起始的单元中。

程序代码

aasegment

xdw?

ydw?

zdw?

resultdw?

aaends

bbsegment

assumecs:

bb,ds:

aa

start:

movax,aa

movds,ax

movax,x

imuly

movcx,ax

movbx,dx

movax,z

cwd

subcx,ax

sbbbx,dx

idivx

movresult,ax

movah,4ch

int21h

bbends

endstart

设数据区中NUM1、NUM2字节单元中存放的是两个无符号数,试编写程序完成下述功能之一的操作:

(1)如果两个数均为偶数,则两个数分别加1后送入DA1、DA2字节单元中;

(2)如果一个为偶数,一个为奇数,则奇数送入DA1,偶数送入DA2字节单元中;

(3)如果两个数均为奇数,则两个数分别送入DA1、DA2字节单元中;

DATASSEGMENT

NUM1DB?

NUM2DB?

DA1DB?

DA2DB?

DATASENDS

 

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

MOVAL,NUM1

MOVAH,NUM2

TESTAL,01H

JNZJ1

TESTAH,01H

JNZJ21

INCAL

INCAH

MOVDA1,AL

MOVDA2,AH

JMPEXIT

J21:

MOVDA1,AH

MOVDA2,AL

JMPEXIT

J1:

TESTAH,01H

JNZJ22

MOVDA1,AL

MOVDA2,AH

JMPEXIT

J22:

MOVDA1,AL

MOVDA2,AH

EXIT:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

 

3.在内存BUFFER单元中存有10个8位数,试编程找出其中的最大值及最小值,并放在指定的存储单元MAX和MIN中

DATASEGMENT

BUFDB10DUP(?

MINDB?

MAXDB?

COUNTDW09H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,BUF

INCSI

MOVAL,BUF

MOVCX,COUNT

FMAX:

CMPAL,[SI]

JGA

MOVAL,[SI]

A:

ADDSI,1

LOOPFMAX

MOVMAX,AL

LEASI,BUF

ADDSI,1

MOVAL,BUF

MOVCX,COUNT

FMIN:

CMPAL,[SI]

JLB

MOVAL,[SI]

B:

ADDSI,1

LOOPFMIN

MOVMIN,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

 

实验

分析

 

实验

分析

(续)

 

【练习1】

用反汇编命令u,进行反汇编。

e指令给x,y,z赋值

利用U命令观察内容如下,表明DS=143BH;变量X的起始地址为DX=0000H;变量Y的起始地址为DX=0002H;变量Z的起始地址为DX=0004H;存放结果的RESULT变量的起始地址为DX=0006H。

通过键盘录入X=0004H,Y=0006H,Z=0002H并运行:

用运行指令g从起始地址143C:

0000开始到143C:

0021暂停

通过E命令将X、Y、Z值录入后,并通过G命令运行后,数据区143BH:

0000H连续8个字节分别存放0006H(X),0002H(Y),0006H(Z),0001H(结果)。

用d指令查看数据段的内容。

1.存在的问题

实验问题和解决方案

①在实验过程中对于DOS命令不熟悉,不能快速有效的进行调试,甚至有时调试命令还导致运行结果错误。

解决方案:

多上机进行试验,熟悉各种调试命令

②在这次上机中,存在一些问题,如在使用汇编集成编辑器的时候将一个窗口打开进行编写代码,代码编写结束后点击保存时页面显示错误会自动消失。

解决方案:

需要将MASMS文件放到无汉字的路径下,才能正常的运行。

【练习2】

1、进行调试,用反汇编命令u,进行反汇编,用e指令赋值。

利用U命令观察内容如下,表明DS=143bH;变量NUM1的起始地址为DX=0000H;变量NUM2的起始地址为DX=0001H;存放结果的DA1变量的起始地址为DX=0002H;DA2变量的起始地址为DX=0003H

用运行指令g从起始地址143c:

0000开始到143c:

0045暂停

用d指令查看数据段的内容。

 

【练习3】

(1)用反汇编命令u,进行反汇编,用e指令赋值,用D命令进行查看赋值后情况。

U观察表明DS=143bH;数据区BUFFER的起始地址为DX=0000H;存放结果的MIN变量的起始地址为DX=000AH;MAX的起始地址为DX=000BH。

用运行指令g从起始地址14D1:

0000开始到14D1:

0045暂停

用d指令查看数据段的内容。

实验

总结

【实验1】

1.存在问题

编写程序的时候在一开始定义未知数的时候直接给出了数据,这样在运行的时候直接运行给定的数据被限定了,所以后来改成了问号,这样在运行程序的时候赋值也容易了。

2.实验结论

通过对数据段的数据定义,利用DOS系统功能调用方法实现了求表达式(XY-Z)/X的值。

3.收获和体会

这是第一个计算机硬件上机实验,通过这次试验使我们所学的知识得到活学活用,我学会了使用汇编集成器运行和调试。

更锻炼了动手操作能力

【实验2】

1.存在问题

根据题目要求编写的时候由于题目是分条件的,所以一开始编写的时候容易混淆,不知道到哪里用JNZ转移。

后来通过看书分清了个转移指令的用法,才是程序能够正确运行。

2实验结论

通过对数据段的数据定义,利用DOS系统功能调用方法实现了判断一个数是奇数还是偶数。

3.收获和体会

通过这个实验理解并学会运用了标志位转移指令以及比较指令。

通过编辑代码学会比较两数奇偶性并判断。

【实验3】

1,.存在问题

在编写程序中由于要用到跳转指令,循环指令,比较指令等。

容易混淆以及不知道怎么应用,还好在同学的帮助以及老师的帮助下完成了这个程序。

2.实验结论

通过对数据段的数据定义,利用DOS系统功能调用方法实现了查找已知数据区的最大值和最小值。

3.心得和体会

通过和同学的交流以及请教老师我学会了运用不同的指令完成这个实验。

掌握了利用DOS系统功能调用方法实现了在已知数据区查找最大值和最小值。

 

教师

评语

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

当前位置:首页 > 工程科技 > 能源化工

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

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