合肥工业大学汇编语言程序设计实验报告.docx
- 文档编号:336107
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:27
- 大小:1.67MB
合肥工业大学汇编语言程序设计实验报告.docx
《合肥工业大学汇编语言程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《合肥工业大学汇编语言程序设计实验报告.docx(27页珍藏版)》请在冰豆网上搜索。
合肥工业大学汇编语言程序设计实验报告
合肥工业大学
计算机与信息学院
实验报告
课程:
汇编语言程序设计
专业班级:
学号:
姓名:
实验一程序的使用
一.实验目的
1、熟悉程序中的命令,学会在下调试运行汇编语言源程序。
2、掌握8086/8088的寻址方式及多字节数据的处理方法。
二.实验内容
实验内容:
1、利用程序中的“E”命令,将两个多字节数“12345678H”和“98H”分别送入起始地址为:
0200H和:
0204H两个单元中。
2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将:
0200H单元和:
0204H单元中的数据相加,并将运算结果存放在:
0208H单元中。
实验要求:
本次实验的内容均在下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
三.实验过程和程序
1、启动操作系统
2、运行程序(若当前盘为C)
C:
>↙
–;(“–”为提示符,仅当屏幕出现该提示符后,才可输入命令)
3、用“A”命令编辑和汇编源程序
–A↙
186E:
0100,[0200]↙
186E:
0103,[0202]↙
186E:
0107,[0204]↙
186E:
010B,[0206]↙
186E:
010F[0208],↙
186E:
0112[020A],↙
186E:
0116↙
4、用“U”命令反汇编验证源程序
–U:
0100↙
186E:
0100A10002,[0200]
186E:
01038B1E0202,[0202]
186E:
010703060402,[0204]
186E:
010B131E0602,[0206]
186E:
010FA30802[0208],
186E:
0112891E0A02[020A],
186E:
0116
注意:
1)检查源程序是否有错误,若有则返回到第3步用“A地址”命令进行修改,直到程序无错误。
2)约定在其命令或源程序中所涉及到的数据均被看作十六进制数,其后不用“H”说明。
3)在下,源程序中不能使用“标号”、“变量”和一些伪指令。
4)在下,大小写不敏感。
5、程序未执行前,用“R”命令观察,相关寄存器的内容。
–R↙
如:
()=0000H,()=0000H,()=0000H,
()=0000H,()=13F5H,()=0100H。
6、在程序未执行前,用“D”命令观察:
0200H,:
0204H、:
0208H单元的内容
–D20020B↙
7、用“G”命令运行源程序
–G=1000116↙
8、再用“D”命令观察:
0200H~:
020字节单元中的内容
–D20020B↙
9、用“T”单步操作命令对源程序单步执行,观察、、、寄器内容的变化,并与预计的结果相比较。
注意:
D命令显示内存数据,注意观察多字节数据在内存中的存放方式。
指令执行的时。
程序运行结果:
()=1110H,()=1111H
:
0208H四字节单元的内容:
11111110H
四.实验结果(包括必要的截图)
五.实验体会
通过这次实验的练习,我熟悉了在的环境下,汇编程序中的命令,并且学会调试运行汇编语言源程序,掌握8086/8088的寻址方式及多字节数据的处理方法。
虽然自己动手实现了简单的计算的中间出现了很多错误,但是在查阅书本以及在老师和同学的帮助下完成了实验任务。
实验二汇编语言程序设计(顺序、循环)
一.实验目的
1、掌握顺序和循环程序结构和设计方法;
2、熟悉在机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。
二.实验内容
1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。
试编写汇编语言程序完成以下功能:
①计算表达式值(V–(X*720));
②将上述表达式运算结果整数放在1单元,余数放在2单元。
2、求一个班50名学生成绩的平均值(附加题:
最大值和最小值,并将结果显示出来)
3、从键盘读入一个字符串,以结束,字符串不超过50个字符,并打印该字符串(附加题:
查找中间是否有‘’子串。
如果有,输出‘’;否则,输出‘’)。
三.实验过程和程序
1)
x1
y0
z0
v0
1?
2?
:
y
720
0
x
1
2
4c00h
21h
2
98,98,96,95,94,93,87,86,85,97,86
:
11
1:
[]
1
11
4c00h
21h
3)
50, ?
50 (24H)
0,0,"$"
:
,10
21H
,9
21H
2
,9
21H
,4
21H
4.实验结果(包括必要的截图)
5.实验体会
通过这次实验的练习,我掌握了顺序和循环程序结构和设计方法,并且可以自己动手在下运用顺序和循环的程序结构自己设计汇编的代码,另外这节课我还学会了在在屏幕上输入和输出字符串,非常的有趣,顺便我又熟悉了一遍在机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程,感觉收获颇丰。
挺高了自己对于学习汇编的兴趣。
实验三汇编语言子程序设计(分支、子程序)
一.实验目的
1、掌握分支和子程序结构和设计方法;
2、熟悉在机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。
3、通过汇编语言了解高级语言的参数传递等知识。
二.实验内容
1、1.中的只有一位为1。
编写程序测试,并输出提示信息“X1”,要求:
地址表和转移表。
2.编写一个子程序计算()*(有符号数内存数)。
要求通过堆栈(寄存器、内存)传送所有参数。
3.实践C→的转换过程。
三.实验过程和程序
1.
;实验三第一题
;定义提示信息,分别代表第i字节出为1
1'11',0,0,'$'
2'21',0,0,'$'
3'31',0,0,'$'
4'41',0,0,'$'
5'51',0,0,'$'
6'61',0,0,'$'
7'71',0,0,'$'
8'81',0,0,'$'
;未定义栈内容
:
;程序代码部分
;用异或将,部分清零
08h;将00001000b赋值给
8;利用进行8次循环
1:
1;将进行逻辑右移一次
;判断中数据是否为1,若是跳转到处
3加3
1
:
09h
;将转移表的地址传入到中
;得到转移表的为1的地方
:
;同一个代码段内使用跳转
l1
l2
l3
l4
l5
l6
l7
l8
:
将的地址传入到中,并跳转到处
l1:
1
l2:
2
l3:
3
l4:
4
l5:
5
l6:
6
l7:
7
l8:
8
;返回汇编窗口
:
21h
4
21H
;代码部分结束
2
x6
y8
;未定义栈部分
:
;主程序部分
;分别将x,y压栈
f;调用子程序f()
4
;子程序调用结束,弹栈
4
21H
;子程序部分
f
[4]
[6]
*y
[6]*
0
[4]*
0
f
四.实验结果(包括必要的截图)
五.实验体会
通过这次实验的练习,我掌握分支和子程序结构和设计方法,特别是地址表和转移表的运用,已经可以熟练的运用转移表和地址表进行分支结构的设计,实验二又让我对子程序参数的调用有了深刻的体会,知道了在运用堆栈进行参数传递时需要注意的要点,另外这次实验又让我再一次熟悉一遍在机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。
实验四汇编语言高级编程专题
一.实验目的
1、汇编语言宏程序设计;
2、掌握中断服务子程序的编写。
3、汇编语言与高级语言的混编。
二.实验内容
1、编写一个宏,求三个数的最小数,原型为:
3
2、挂接1中断,正计时60秒后退出。
要求屏幕显示0-59的秒数。
3、中编写内联汇编,将字节数组的每个元素高低四位互换。
[]={0x34,0x45,0x56,0x67,0};
三.实验过程和程序
1;宏3
3
;比较,
j1<
j2;否则<
j1:
;比较,
j3<
j5;否则<
j2:
;比较,
j3<
j4;否则<
j3:
02h
30h
21h
j4:
02h
30h
21h
j5:
02h
30h
21h
:
4
21h
;未定义数据段数据
;未定义栈段数据
:
32,1,6;找出216三数中最小数
4
21H
2.
?
?
100
0
0
;未定义
:
:
[1*4]
[0]
:
[1*4+2]
[2],
:
[1*4],
:
[1*4+2]
:
1
:
[0]
:
[1*4]
[2]
:
[1*4+2]
4C00H
21H
:
0
21h
j2
8;不显示输入的字符
21H
'a'
j2
2h
10
21H
0
j2:
1000/55
0
2
13
21H
j3:
10
2
30H
21H
2
30H
21H
60
1
:
;中断返回
3.
<>
;
(){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 合肥 工业大学 汇编语言 程序设计 实验 报告