太原理工大学硬件实验报告.docx
《太原理工大学硬件实验报告.docx》由会员分享,可在线阅读,更多相关《太原理工大学硬件实验报告.docx(24页珍藏版)》请在冰豆网上搜索。
太原理工大学硬件实验报告
本科实验报告
课程名称:
计算机硬件技术基础(实验一)
实验地点:
专业班级:
软件13xx班学号:
201300xxxx
学生姓名:
指导教师:
高劲松
2015年5月8日
太原理工大学学生实验报告
学院名称
软件学院
专业班级
学号
学生姓名
实验日期
2015-5-8
成绩
课程名称
硬件技术基础
实验题目
汇编语言程序设计:
顺序程序实验
一、实验目的和要求
1.通过宏汇编(MASM)上机操作,使学生掌握汇编语言源程序的编辑、汇编、连接和执行的完整过程。
2.掌握汇编过程中各命令的作用及使用方法,了解汇编和连接的过程。
3.掌握8086/8088指令系统中已学指令的书写格式、功能及其作用。
4.结合实例程序掌握汇编语言程序上机过程,熟悉DEBUG程序中常用命令的使用。
二、实验内容和原理
1.预习汇编程序上机操作的全过程。
以下是MASM5环境中运行步骤:
(同学们也可以使用CV集成编译环境)
32位机运行过程:
编写一个汇编语言源程序如exp1.asm,放在MASM5文件夹下;
(1)在dos环境下,如:
d:
\masm\下输入命令:
edit
(2)打开编辑窗口
(3)输入如下原程序后保存文件,例如exp1.asm
(4)输入下列指令进行编译:
d:
\masm\masmexp1.asm回车,出现如下界面:
Microsoft(R)MacroAssmblerVersion5.00
Copyright(C)MicrosoftCorpl981--1985,1987.AHrightsreserved.
Objectfilename[exp1.obj]:
(回车)
SourceListing[NUL.LST]:
(回车)
Croesreferencs[NUL.CRF]:
(回车)
0WarningErrors0SeversErrors
检查错误,如结果为0错误0警告则编译成功,产生exp1.obj文件
(5)输入下列指令进行链接:
d:
\masm\linkexp1.obj回车,出现如下界面:
RunFile[exp1.EXE]:
(回车)
ListFILE[NUL.MAP]:
(回车)
Libraries[.LIB]:
(回车)
LINK:
warningL4021:
NoSTACKsegment
如结果为0错误0警告则链接成功,产生exp1.exe文件
64位机运行过程:
汇编编译器masm无法在64位下运行,在64位下使用masm编译器会提示不兼容,这时我们可以安装DOS虚拟机,即DOSBox。
(1)假设编译器在E:
\masm5,就是那个有masm.exe,debug.exe,link.exe的那个文件夹
(2)输入命令 mount C E:
\masm5 (把文件夹E:
\masm5当作虚拟机的C盘)
(3)然后输入 C:
(进入虚拟的C盘,其实就是E:
\masm5)
(4)之后就跟32位机上运行过程一样。
2.对已经汇编连接成功的可执行文件,使用DEBUG命令调试程序找出程序的断点,执行程序,显示有关寄存器、存储单元的内容,分析程序的结果。
三、主要仪器设备
HP242g1
四、操作方法与实验步骤
编制程序计算Z=X+Y,其中X、Y、Z均为字型无符号数。
参考源程序如下
DATASEGMENT
XDW10H
YDW20H
ZDW?
DATAENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAX,X
ADDAX,Y
MOVZ,AX
RET
MAINENDP
CODEENDS
ENDSTART
(1)编辑源程序,汇编并连接之,若有错误则编辑修改并重新汇编、连接,形成EXE文件。
(2)分别用DEBUG调试程序中的T命令、D命令找到断点、运行程序、显示程序的运行结果。
实验内容与要求
1.编写程序计算Z=(A+B)-(C-D),其中A=30H,B=20H,C=10H,D=05H均为字节单元无符号数。
STACKSEGMENTSTACK
DB50DUP(0)
STACKENDS
DATASEGMENT
ADB30H
BDB20H
CDB10H
DDB05H
ZDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAL,A
ADDAL,B
MOVAH,D
SUBAH,C
SUBAH,AL
MOVZ,AL
CODEENDS
ENDSTART
2.设W、X、Y、Z、V均为16位字单元有符号数,编程计算W=(X*Y-50)/Z,将结果存入变量W,而余数存入变量W+2中。
(X为非零数,并假设X、Y、Z的值分别为50、20、10、15)
STACKSEGMENTSTACK
DB50DUP(0)
STACKENDS
DATASEGMENT
XDW50H
YDW20H
ZDW10H
WDW?
DATAENDS
第3/7页
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAX,X
IMULY
SUBAX,50
MOVBX,Z
IDIVBX
MOVW,AX
MOV[W+2],DX
CODEENDS
ENDSTART
五、实验数据记录和处理
。
6、实验结果与分析
由调试过程可知,上述实验结果正确
7、讨论、心得
在实验过程中,遇到了许多困难,第一次实验,有很大程度上是对基本知识不熟悉造成的,通过查阅书籍和上网查资料找到了解决问题的方法,在今后的学习中,我要多注重基本知识的学习,回归课本,在课本中再延伸。
本科实验报告
课程名称:
计算机硬件技术基础(实验二)
实验地点:
专业班级:
软件13xx班学号:
201300xxxx
学生姓名:
指导教师:
高劲松
2015年5月15日
太原理工大学学生实验报告
学院名称
软件学院
专业班级
学号
学生姓名
实验日期
2015-5-15
成绩
课程名称
硬件技术基础
实验题目
汇编语言程序设计:
分支和循环程序实验
一,实验目的和要求
1.通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。
2.掌握分支程序的结构、单分支和多分支程序的设计方法。
3.了解循环程序的基本结构和控制循环的方法。
二、实验内容和原理
要求学生按教师指定题目进行汇编语言程序设计,并上机调试,以实现较复杂的程序设计。
1.已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元。
2.求10个学生成绩中的最高成绩,结果存入MAX字节单元中,已知成绩为字节型。
三、主要仪器设备
HP242g1
四、操作方法与实验步骤
DB200DUP(0)
STACKENDS
DATASEGMENT
XDW10H
YDW20H
ZDW30H
MAXDW?
DATAENDS
第2/6页
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAX,X
MOVBX,Y
CMPAX,BX
JNLNEXT
XCHGAX,BX
NEXT:
MOVBX,Z
JNLNEXT1
XCHGAX,BX
NEXT1:
MOVMAX,AX
CODEENDS
ENDSTART
STACKSEGMENTSTACK
DB200DUP(0)
STACKENDS
DATASEGMENT
A1DB96,73,34,86,99,20,15,4,100,0
MAXDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVCX,10
MOVBX,0
MOVAL,A1[BX]
AGAIN:
INCBX
CMPA1[BX],AL
JBENEXT
XCHGAL,A1[BX]
NEXT:
LOOPAGAIN
MOVMAX,AL
CODEENDS
ENDSTART
五、实验数据记录和处理
六、实验结果与分析
由以上的调试步骤以及分析可知实验正确。
七、讨论、心得
通过一步一步的调试可能找到错误的原因。
写循环使用LOOP,其中处理数据的形式,即A1[BX]。
忘记其中的语句的语义是否正确可以使用调试开验证是否正确。
在自己一步步的调试过程中,我的动手能力和实际编程能力得到了极大的提高。
实验地点
指导教师
高劲松
本科实验报告
课程名称:
计算机硬件技术基础(实验三)
实验地点:
专业班级:
软件13xx班学号:
201300xxxx
学生姓名:
指导教师:
高劲松
2015年5月22日
太原理工大学学生实验报告
学院名称
软件学院
专业班级
学号
学生姓名
实验日期
2015-5-22
成绩
课程名称
硬件技术基础
实验题目
汇编语言程序设计:
综合程序设计实验
一,实验目的和要求
1.通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。
2.掌握分支程序的结构、单分支和多分支程序的设计方法。
3.了解循环程序的基本结构和控制循环的方法。
4.掌握通过DOS中断调用使用键盘和显示器的方法。
二、实验内容和原理
编写一个汇编程序,要求对键盘输入的大写字母用小写字母显示出来,键盘输入的小写字母用大写字母显示出来。
三、主要仪器设备
笔记本电脑
四、操作方法与实验步骤
STACKSEGMENTSTACK
DB200DUP(0)
STACKENDS
DATASEGMENT
XDB0;
DATAENDS
第2/5页
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAH,01H
INT21H
CMPAL,'a'
JNLNEXT
MOVX,'a'-'A'
ADDX,AL
MOVAH,02H
MOVDL,X
INT21H
MOVAH,4CH
INT21H
NEXT:
MOVX,'A'-'a'
ADDX,AL
MOVAH,02H
MOVDL,X
INT21H
MOVAH,4CH
CODEENDS
ENDSTART
五、实验数据记录和处理
六、实验结果与分析
由上述过程得知,实验结果正确。
七、讨论、心得
通过使用-u来进行反编译也是一种很好的进行测试的方法。
并且对于一些并不熟悉的ASCALL码有时可以通过直接用字符的方法去做,省去记忆字符。
实验地点
指导教师
高劲松
本科实验报告
课程名称:
计算机硬件技术基础(实验四)
实验地点:
专业班级:
软件13xx班学号:
201300xxxx
学生姓名:
指导教师:
高劲松
2015年5月29
太原理工大学学生实验报告
学院名称
软件学院
专业班级
学号
学生姓名
实验日期
2015-5-29
成绩
课程名称
硬件技术基础
实验题目
汇编语言程序设计:
综合程序设计实验
一,实验目的和要求
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
三、主要仪器设备
HP242g1
四、操作方法与实验步骤
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
MOVAH,1
INT21H
第3/5页
CMPAL,20H
JBSTOP
CMPAL,'0'
JBCC2
CMPAL,'9'
JACC1
INCBH
JMPNEXT1
CC1:
CMPAL,'A'
JBCC2
CMPAL,'Z'
JBNEXT
CMPAL,'a'
JBCC2
CMPAL,'z'
JACC2
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
INT21H4
CODEENDS
ENDSTART
五、实验数据记录和处理
六、实验结果与分析
由上述过程可知,实验结果正确。
七、讨论、心得
通过本次课程设计,自己在哪些方面的能力有所提高。
在设计程序时,遇到的问题,通过上网找,自学得到许多知识,独立思考能力提高很多。
经过本次的实验设计,学会了独立思考,语言表达能力有所提高,此外动手能力也较以前有很大提高。
在这几次的试验中,掌握了许多实际的操作,开始编的程序不能运行,但是后来经过努力的修改,终于使得程序正确运行。
实验地点
明向校区行知楼B117
指导教师
高劲松
日