太原理工硬件实验报告.docx

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

太原理工硬件实验报告.docx

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

太原理工硬件实验报告.docx

太原理工硬件实验报告

本科实验报告

课程名称:

计算机硬件技术基础

实验项目:

顺序程序实验

实验地点:

专业班级:

学号:

学生姓名:

指导教师:

2015年5月5日

太原理工大学学生实验报告

学院名称

专业班级

学号

学生姓名

实验日期

成绩

课程名称

计算机硬件技术基础

实验题目

顺序程序实验

一、实验目的和要求

1.通过宏汇编(MASM)上机操作,使学生掌握汇编语言源程序的编辑、汇编、连接和执行的完整过程。

2.掌握汇编过程中各命令的作用及使用方法,了解汇编和连接的过程。

3.掌握8086/8088指令系统中已学指令的书写格式、功能及其作用。

4.结合实例程序掌握汇编语言程序上机过程,熟悉DEBUG程序中常用命令的使用。

要求预习汇编程序上机操作的全过程。

二、实验内容和原理

1.编写程序计算Z=(A+B)-(C-D),其中A=30H,B=20H,C=10H,D=05H均为字节单元无符号数。

2.设W、X、Y、Z、V均为16位字单元有符号数,编程计算W=(X*Y-50)/Z,将结果存入变量W,而余数存入变量W+2中。

(X为非零数,并假设X、Y、Z的值分别为20、10、15)

三、主要仪器设备

电脑,汇编语言

4、操作方法与实验步骤

实验一:

datasegment

Adb30h

Bdb20h

Cdb10h

Ddb05h

Zdb?

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

xorax,ax

moval,A

addal,B

subal,C

addal,D

movZ,al

movax,4ch

int21h

codeends

endstart

实验二:

datasegment

Xdw20

Ydw10

Zdw15

Wdw?

?

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

xorax,ax

movax,X

mulY

subax,50

divZ

movW,ax

movax,4ch

int21h

codeends

endstart

五、实验数据记录和处理

六、实验结果与分析

第一个实验结果为AX里的值0045。

第二个实验结果为AX里的值000A,同时把值放入W中,余数在W+2中。

七、讨论、心得

这个实验帮我熟悉了汇编语言如何使用,虽然参考了书上的程序,但是我也从中学到了一些东西,懂得了自己去调试程序。

实验地点

指导教师

太原理工大学学生实验报告

学院名称

专业班级

学号

学生姓名

实验日期

成绩

课程名称

计算机硬件技术基础

实验题目

分支和循环程序实验

二、实验目的和要求

1.通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。

2.掌握分支程序的结构、单分支和多分支程序的设计方法。

3.了解循环程序的基本结构和控制循环的方法。

二、实验内容和原理

要求学生按教师指定题目进行汇编语言程序设计,并上机调试,以实现较复杂的程序设计。

1.已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元。

2.求10个学生成绩中的最高成绩,结果存入MAX字节单元中,已知成绩为字节型。

三、主要仪器设备

电脑,汇编语言

4、操作方法与实验步骤

实验一:

stacksegmentstack

db50DUP(0)

stackends

datasegment

numdb2,5,6

maxdb?

dataends

codesegment

assumecs:

code,ds:

data,ss:

stack

start:

movax,data

movds,ax

xorax,ax

moval,num

cmpal,num[1]

jgenext1

moval,num[1]

next1:

cmpal,num[2]

jgenext2

moval,num[2]

next2:

movmax,al

movax,4c00h

int21h

codeends

endstart

实验一:

stacksegmentstack

db50DUP(0)

stackends

datasegment

numdb11,99,22,88,77,66,55,44,33,0

maxdb?

dataends

codesegment

assumecs:

code,ds:

data,ss:

stack

start:

movax,data

movds,ax

movsi,offsetnum

xorax,ax

movcx,10

moval,[si]

AGAIN:

cmpal,[si]

jgenext

moval,[si]

next:

INCsi

loopAGAIN

movmax,al

movax,4c00h

int21h

codeends

endstart

5、实验数据记录和处理

第一张图为实验1

第二张图为实验2

六、实验结果与分析

第一个实验三个数字为2,5,6,最后结果为AX里0006。

第二个实验十个数字为11,99,22,88,77,66,55,44,33,0,最后结果为AX里0063(16进制的99)。

七、讨论、心得

这个实验还是参考了书上的例子,但是相对上一个实验添加了更多自己的东西,第二个实验比第一个要多考虑到循环的使用,保证AX里放的一直是最大值,则经过10次循环后可得出成绩的最大值。

实验地点

指导教师

太原理工大学学生实验报告

学院名称

专业班级

学号

学生姓名

实验日期

成绩

课程名称

计算机硬件技术基础

实验题目

综合程序设计实验

一、实验目的和要求

1.通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。

2.掌握分支程序的结构、单分支和多分支程序的设计方法。

3.了解循环程序的基本结构和控制循环的方法。

4.掌握通过DOS中断调用使用键盘和显示器的方法。

二、实验内容和原理

编写一个汇编程序,要求对键盘输入的大写字母用小写字母显示出来,键盘输入的小写字母用大写字母显示出来。

三、主要仪器设备

汇编语言,电脑。

4、操作方法与实验步骤

datasegment

sinputdb'start:

$'

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data;

movds,ax;若有数据段前两行需加上

movah,9

leadx,sinput

int21h

movah,1

int21h

cmpal,96

jgenext;大于等于

addal,32

jmpdone

next:

subal,32

done:

movdl,al

movah,2

int21h

movah,4ch

int21h

codeends

endstart

五、实验数据记录和处理

六、实验结果与分析

输入大写字母C时变为小写字母c,输入小写字母c时变成大写字母C。

七、讨论、心得

这个实验我依旧想参照书上的例子,但是不知为何却跳过了输入字母的部分,于是我自己写了代码,经过努力终于能将输入大写字母时变为小写字母,输入小写字母时变成大写字母。

实验地点

指导教师

太原理工大学学生实验报告

学院名称

专业班级

学号

学生姓名

实验日期

成绩

课程名称

计算机硬件技术基础

实验题目

综合程序设计实验

一、实验目的和要求

1.通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。

2.掌握分支程序的结构、单分支和多分支程序的设计方法。

3.了解循环程序的基本结构和控制循环的方法。

4.掌握通过DOS中断调用使用键盘和显示器的方法。

二、实验内容和原理

编写一个汇编程序,使得从键盘上输入十个以内的字符,以输入空格结束,然后按数字、字母和其它符号三类统计各自的个数,在屏幕上依次显示出统计结果。

完善下面的原程序

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVBH,0;统计数字的个数

MOVBL,0;统计字母的个数

MOVDH,0;统计其它字符的个数

MOVCX,10

AA1:

CMPCX,0

JZSTOP;输入字符超过10个

MOVAH,1

INT21H;从键盘接收一个字符

CMPAL,20H

JZSTOP

CMPAL,’0’

JBCC1

CMPAL,’9’

JACC1

INCBH

自行写出比较是否为字母的情况

CC2:

INCDH

DECCX

STOP:

MOVDL,BH

MOVAH,02

INT21H

自行写出输出字母的个数

自行写出输出其它字符的个数

RET

Mainendp

Codeends

End

三、主要仪器设备

汇编语言,电脑。

4、操作方法与实验步骤

STACKSEGMENTSTACK

DB200DUP(0)

STACKENDS

DATASEGMENT

XDB'0'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

SUBAX,AX

MOVBX,0

MOVDX,0

MOVCX,10

AA1:

CMPCX,0

JZSTOP;CX里值为空则停止循环

MOVAH,1

INT21H;从键盘接受一个字符

CMPAL,20H

JZSTOP;输入空格则跳出

CMPAL,'0'

JBCC2;<0则记为特殊字符

CMPAL,'9'

JACC1;>9则进入下一层判断

INCBH;是数字

JMPNEXT1

CC1:

CMPAL,'A'

JBCC2;

CMPAL,'Z'

JBNEXT;

CMPAL,'a'

JBCC2;

CMPAL,'z'

JACC2;>z记为特殊字符

NEXT:

INCBL;是字母

JMPNEXT1

CC2:

INCDH;是特殊字符

NEXT1:

LOOPAA1;判断下一个字符

STOP:

MOVAH,2

MOVDL,BH

ADDDL,X

INT21H;输出数字字数

MOVAH,2

MOVDL,BL

ADDDL,X

INT21H;输出字母字数

MOVAH,2

MOVDL,DH

ADDDL,X

INT21H;输出特殊字符

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

五、实验数据记录和处理

六、实验结果与分析

输入字符为ab123=然后输入空格,得出数字数为3字母数为2特殊字符为1。

七、讨论、心得

试验中用到了多次条件判断JB是小于JA是大于,根据ASCLL码值表,来对输入的字符进行判断是哪个部分加1,输入空格结束,最后输出数字。

一开始让我觉得不解的是,若在STOP里去掉ADDDL,X,输出的数字是乱码,加上之后却输出了正常的数字,最后经过查阅,直接输出数字的话,机器会认为是ASCLL码值,而不是输出数字,所以加个0让其变为数字输出,

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

当前位置:首页 > 外语学习 > 英语学习

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

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