太原理工大学硬件实验报告Word文件下载.docx
《太原理工大学硬件实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《太原理工大学硬件实验报告Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
![太原理工大学硬件实验报告Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/30/aa6f7bfa-7c92-4e9a-a6a6-1d626f3dfab0/aa6f7bfa-7c92-4e9a-a6a6-1d626f3dfab01.gif)
软件学院
专业班级
15032
学号
2015006492
学生姓名
袁艺通
实验日期
成绩
课程名称
顺序程序实验
实验题目
实验目的和要求
1.通过宏汇编(MASM)上机操作,使学生掌握汇编语言源程序的编辑、汇编、连接和执行的完整过程。
2.掌握汇编过程中各命令的作用及使用方法,了解汇编和连接的过程。
3.掌握8086/8088指令系统中已学指令的书写格式、功能及其作用。
4.结合实例程序掌握汇编语言程序上机过程,熟悉DEBUG程序中常用命令的使用
实验内容和原理
1.预习汇编程序上机操作的全过程。
2.对已经汇编连接成功的可执行文件,使用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的值分别为50、20、10、15)
实验数据记录和处理
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题的输出为E,因此没有加入输出
刚开始的时候,因为没有存储数据所以导致出现了错误,找到的不是想要的数据地址。
经过讨论和查阅课本才得到解决。
实验地点
逸夫楼402
指导教师
赵涓涓
1532
分支程序设计实验
一、实验目的和要求
1.通过分支程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。
2.掌握分支程序的结构、单分支和多分支程序的设计方法。
3.掌握分支程序的基本结构和控制循环的方法。
4.要求学生按教师指定题目进行汇编语言程序设计,并上机调试,以实现较复杂的程序设计。
二、实验内容和原理
1.已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元。
2.编写程序计算Y的值,当X<
0时,Y=-1;
当X=0时,Y=0,当X>
0时,Y=1,其中,输入数据X和输出数据Y均在数据段中定义,且皆为字节变量。
三、主要仪器设
笔记本、DOSBOX
四、操作方法与实验步骤
64位机运行过程:
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)输入dir?
(5)输入命令:
edit,打开编辑窗口,输入如下原程序后保存文件,例如exp1.asm?
(6)输入下列指令进行编译:
d:
\?
masm?
exp1.asm回车检查错误,如结果为0错误0警告则编译成功,产生exp1.obj文(7)输入下列指令进行链接:
link?
exp1.obj回车如结果为0错误0警告则链接成功,产生exp1.exe文件2.对已经汇编连接成功的可执行文件,使用DEBUG命令调试程序找出程序的断点,执行程序,显示有关寄存器、存储单元的内容,分析程序的结果。
输入下列指令进行调试:
\masm\debug?
exp1.exe回车,输入指令可以得到相应的调试结果:
-D?
显示储存器内容-T?
执行和显示内容
五、实验数据记录和处理
1.
2.
六、实验结果与分析
2.
由调试步骤可知上述实验结果正确。
其中在调试过程中,其中出现了错误,通过一步一步的调试可能找到错误的原因。
写循环使用LOOP,其中处理数据的形式忘记其中的语句的语义是否正确可以使用调试开验证。
最终可以调试。
循环程序实验
循环设计实验
二、实验目的和要求
1.通过循环程序设计实验,掌握循环条件转移指令、循环控制的格式、功能及使用方法。
2.掌握循环程序的基本结构和控制循环的方法。
1.编写程序用来分别统计ARRAY数组中奇数和偶数的个数,输出数据均在数据段中。
2.求10个学生成绩中的最高成绩,结果存入MAX字节单元中,已知成绩为字节型。
综合程序设计实验
综合设计设计实验
三、实验目的和要求
1.通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。
3.了解循环程序的基本结构和控制循环的方法。
4.掌握通过DOS中断调用使用键盘和显示器的方法。
1.编写一个汇编程序,要求对键盘输入的大写字母用小写字母显示出来,键盘输入的小写字母用大写字母显示出来。
2.编写一个汇编程序,使得从键盘上输入十个以内的字符,以输入空格结束,然后按数字、字母和其它符号三类统计各自的个数,在屏幕上依次显示出统计结果。
STACKSEGMENTSTACK
DB200DUP(0)
STACKENDS
DATASEGMENT
ADB'
PLEASEINPUT(a~z):
'
'
$'
BDB0DH,0AH,'
CONVERTRESULT:
CODE,DS:
DATA,SS:
STACK
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETA
MOVAH,09H
INT21H
MOVAH,01H
MOVBL,AL
CMPBL,61H
JGS1
ADDBL,20H
JMPNEXT
S1:
SUBBL,20H
NEXT:
MOVDX,OFFSETB
MOVDL,BL
MOVAH,02
MOVAH,4CH
CODEENDS
ENDSTART
运行结果: