汇编语言实验教学手册.docx
- 文档编号:25080500
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:81
- 大小:58.33KB
汇编语言实验教学手册.docx
《汇编语言实验教学手册.docx》由会员分享,可在线阅读,更多相关《汇编语言实验教学手册.docx(81页珍藏版)》请在冰豆网上搜索。
汇编语言实验教学手册
创新源于实践
《汇编语言程序设计》
课程实验教学手册
专业:
计算机科学与技术
班级:
09级1班
学号:
1107090109
姓名:
冯冬冬
任课教师:
张向群
时间:
年月日
综合成绩:
计算机科学与技术学院《汇编语言》课程组
实验手册使用及要求
实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:
1、实验预习报告必须在实验前完成。
2、实验时带好实验手册指导教师签字后方可进行实验。
3、实验时按实验预习报告内容进行实验。
并如实填写实验过程及实验中存在的问题分析及解决办法。
4、实验结束后填写通过后的源程序和对实验改进建议。
5、通过后的源程序可以手写也可以打印粘贴。
6、每个实验中教师签名一栏,学生不能填写,供指导教师检查完实验预习报告后签字使用。
7、实验位置填写应为:
实验室编号__实验台.如:
107-01。
8、实验九为综合实验。
共设计个题目,分组进行设计和实验。
要求见实验指导。
实验情况一览表
实验序号
实验名称
实验性质
学时
页码
实验一
汇编的编辑环境和运行方法
验证性实验
2
4-5
实验二
DEBUG的应用
验证性实验
4
6-7
实验三
算术运算
设计性实验
4
8-11
实验四
非数值运算
设计性实验
2
12-15
实验五
子程序调用
设计性实验
4
16-19
实验六
中断程序的设计
设计性实验
4
20-23
实验七
发声程序设计
设计性实验
4
24-27
实验八
字符显示程序的设计
设计性实验
4
28-31
实验九
综合实验
综合性实验
8
32-37
实验一
实验名称汇编的编辑环境和运行方法、实验性质验证性、教师签名
实验学时数2学时、实验位置:
、实验日期:
年月日
一、实验目的
1、学习汇编源程序的编辑、汇编、链接的全过程。
2、学习EDIT、MASM及LINK的使用
二、实验要求
1、掌握汇编语言的编辑、汇编、链接、运行。
三
、
实
验
内
容
预
习
报
告
验证源程序如下:
;以下是数据段
Datasegment;定义数据段
Adb‘ok$’;定义字符串
Dataends;数据段结束
;以下是代码段
Codesegment;定义数据段
Assumecs:
code,ds:
data
Start:
movax,data
movds,ax
movah,9
leadx,a
int21h;显示字符串
movah,4ch
int21h;返回返回操作系统
codeends;代码段结束
endstart;源程序结束
注:
将源程序第八行中的start改成begin看有什么结果
四
、
实
验
过
程
(1)将上述实验源程序输入文本文档中,并另存为sy1.asm;
(2)将sy1.asm移动到masm软件所在的文件夹中;
(3)开始—>运行—>输入cmd,进入dos界面;
(4)E:
\masm\进入实验一所在的文件夹;
(5)
(6)将源程序第八行中的start改成begin后,
(7)但是将最后一行的start也改成begin后,运行结果也正确。
五、实验改进建议
实验改进建议:
我建议在这个了解编译环境的实验中,可以多找几个实验,尤其是让学生自己到网上去找,然后让他们自己调试,观察结果,更能激起学生学习汇编的积极性。
实验二
实验名称DEBUG的应用、实验性质验证性、教师签名
实验学时数4学时、实验位置、实验日期年月日、
一、实验目的
1、熟悉DEBUG的应用,结合指令系统进行验证。
二、实验要求
1、掌握DEBUG的简单应用
三
、
实
验
内
容
预
习
报
告
命令
格式
命令
格式
汇编
A[地址]
命名
N[设备:
][路径]文件名[.扩展名]
比较
C[范围]
输出
O口地址
转出
D[范围]或[地址]
继续执行
P[=地址][值]
键入
E地址[表]
退出
Q
填入
F范围表
寄存器
R[寄存器]
执行
G[=地址][地址[地址...]]
搜索
S范围表
十六进制
H值 值
跟踪
T[=地址]或[范围]
输入
I口地址
反汇编
U[地址]或[范围]
装入
L[地址][设备扇区,扇区]]
写
W[地址[设备扇区,扇区]]
移动
M范围 地址
在PC机中,有四个专门存放段地址的寄存器,称为段寄存器。
它们是代码段CS(CodeSegment)、数据段DS(DataSegment)、堆栈段SS(StackSegment)和附加段ES(ExtraSegment)寄存器。
每个段寄存器可以确定一个段的起始地址,而这些段则各有各的用途。
代码段是存放当前正在运行的程序。
数据段存放当前运行程序所用的数据,如果程序中使用了串处理指令,则其源操作数也存放在数据段中。
堆栈段定义了堆栈的所在区域,堆栈是一种数据结构,它是一个比较特殊的数据段。
附加段是附加的数据段,它是一个辅助的数据区,也是串处理指令的目的操作数存放区。
还有四个通用数据寄存器AX、BX、CX、DX;四个指针及变址寄存器SP、BP、SI、DI;控制寄存器包括IP(指令指针寄存器)和PSW程序状态字寄存器。
四
、
实
验
过
程
开始—>运行—>输入cmd,进入dos界面;
五、实验改进建议
实验改进建议:
我建议,用一个程序来演示debug的应用,这样能使学生们充分的将汇编语言与其他编程语言练习起来。
实验三
实验名称算术运算、实验性质设计性、教师签名
实验学时数4学时、实验位置、实验日期年月日、
一、实验目的
1、熟悉算术运算程序的编写方法,熟悉各种十进制调整方法
二、实验要求
1、掌握简单的算术编程。
三
、
实
验
内
容
预
习
报
告
1、题目:
编写程序实现:
Z<—W+(Z-X)
2、算法:
movax,x
movbx,z
subbx,ax
movax,w
addax,bx
movz,ax
实
验
内
容
预
习
报
告
3、源程序:
datasegment
xdw2
zdw3
wdw5
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movax,x
movbx,z
subbx,ax
movax,w
addax,bx
movz,ax
movah,4ch
int21h
codeends
endstart
四
、
实
验
过
程
实验过程、存在的问题及解决办法:
开始—>运行—>输入cmd,进入dos界面;
实验结果分析:
程序运行无误,但是不能看到运算结果,无法分析。
但是经过修改后发现输出结果:
,经分析他输出错误是因为他是以字符形式输出需将其转换为数字。
五、实验改进建议
在实验中加入输出函数。
方便查看结果。
六、指导老师评语
七、
成绩
八
、
通
过
后
的
源
程
序
datasegment
xdw2
zdw3
wdw5
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movax,x
movbx,z
subbx,ax
movax,w
addax,bx
movz,ax
addal,30h
movdl,al
movah,2
int21h
movah,4ch
int21h
codeends
endstart
实验四
实验名称非算术运算、实验性质设计性、教师签名
实验学时数2学时、实验位置、实验日期年月日、
一、实验目的
1、熟悉非数值运算程序的编写方法,掌握的简单的分支程序设计。
二、实验要求
1、掌握简单的非数值运算程序设计
三
、
实
验
内
容
预
习
报
告
题目:
编写一个汇编语言程序,使得从浅盘读入的小写字母以大写字母的形式输出。
算法:
subal,20h,将一个小写字母的ASC11码转换为对应的大写字母的ASC11。
实
验
内
容
预
习
报
告
3、源程序:
codesegment
assumecs:
code
start:
movax,1
int21h
subal,20h
movdl,al
movah,6
int21h
movdl,0dh
movah,2
int21h
movdl,0ah
movah,2
int21h
jmpstart
movah,4ch
int21h
codeends
endstart
四
、
实
验
过
程
开始—>运行—>输入cmd,进入dos界面;
程序进入死循环,并且不能输入。
经过仔细检查,是因为在程序刚开始时,应该是movah,1,因此我们编写程序时一定要认真仔细,一个字母的差别就会使得程序调试失败。
经过第一次修改后:
经过第二次修改后,将输入的字符与回车比较,如果相等结束:
实验结果分析:
从键盘输入一个小写字母之后,会显示一个大写字母,并且输出换行,结果正确。
五、实验改进建议
程序是一个死循环,应该加入一些字符串,提醒用户输入字符的个数,或者输入字符的结束符,使得程序不无限循环。
六、指导老师评语
七、
成绩
八
、
通
过
后
的
源
程
序
assumecs:
code
codesegment
start:
movah,01h
int21h
cmpal,0dh
jza
subal,20h
movdl,al
movah,06h
int21h
movdl,0dh
movah,2
int21h
movdl,0ah
movah,2
int21h
jmpstart
a:
movah,4ch
int21h
codeends
endstart
实验五
实验名称子程序调用、实验性质设计性、教师签名
实验学时数4学时、实验位置、实验日期年月日、
一、实验目的
1、学习循环、分支及子程序程序的编写。
二、实验要求
1、掌握简单的汇编程序编写。
三
、
实
验
内
容
预
习
报
告
1、题目:
将一个十进制数字转换为十六进制。
(2)将数字转换为十六进制并输出
rote:
movcl,4
rolbx,cl
moval,bl
andal,0fh
addal,30h
cmpal,30h
jlprintf
addal,7h
2、算法:
(1)将输入的字符串转换为一个数字
new:
movah,1
int21h
subal,30h
jlexit
cmpal,9d
jgexit
cbw
xchgax,bx
movcx,10d
mulcx
xchgax,bx
addbx,ax
jmpnew
实
验
内
容
预
习
报
告
3、源程序:
dechexsegment
assumecs:
dechex
mainprocfar
repeat:
calldeci
callcrf
callbin
callcrf
jmprepeat
mainendp
deciprocnear
movbx,0
new:
movah,1
int21h
subal,30h
jlexit
cmpal,9d
jgexit
cbw
xchgax,bx
movcx,10d
mulcx
xchgax,bx
addbx,ax
jmpnew
exit:
ret
deciendp
binprocnear
movch,4
rote:
movcl,4
rolbx,cl
moval,bl
andal,0fh
addal,30h
cmpal,3ah
jlprint
addal,7h
print:
movdl,al
movah,2
int21h
decch
jnzrote
ret
binendp
crfprocnear
movdl,0dh
movah,2
int21h
movdl,0ah
movah,2
int21h
ret
crfendp
dechexends
endmain
四
、
实
验
过
程
实验过程、存在的问题及解决办法:
开始—>运行—>输入cmd,进入dos界面;经过编译、连接运行程序得到如下结果,但是所得到的结果中总是四位十六进制数,不够的高位补零,因此可以将循环左移后的数字与零进行比较,然后进行操作。
经过修改后:
实验结果分析:
输入一个十进制数,以十六进制数输出,结果正确。
五、实验改进建议
函数输出的十六进制数不能出现高位为零。
六、指导老师评语
七、
成绩
八
、
通
过
后
的
源
程
序
dechexsegment
assumecs:
dechex
mainprocfar
repeat:
calldeci
callcrf
callbin
callcrf
jmprepeat
mainendp
deciprocnear
movbx,0
new:
movah,1
int21h
subal,30h
jlexit
cmpal,9d
jgexit
cbw
xchgax,bx
movcx,10d
mulcx
xchgax,bx
addbx,ax
jmpnew
exit:
ret
deciendp
binprocnear
movch,4
rote:
movcl,4
rolbx,cl
moval,bl
andal,0fh
cmpal,0
jzs
addal,30h
cmpal,3ah
jlprint
addal,7h
print:
movdl,al
movah,2
int21h
s:
decch
jnzrote
ret
binendp
crfprocnear
movdl,0dh
movah,2
int21h
movdl,0ah
movah,2
int21h
ret
crfendp
dechexends
endmain
实验六
实验名称中断程序的设计、实验性质设计性、教师签名
实验学时数4学时、实验位置、实验日期年月日、
一、实验目的
1、熟悉中断程序的设计方法,程序驻留方法。
二、实验要求
1、掌握简单的中断程序设计。
三
、
实
验
内
容
预
习
报
告
1、题目:
编写一个中断处理程序,要求在主程序运行过程中,每隔十秒钟响铃一次,同时在屏幕上显示出信息:
“Thebellisring!
”
2、算法:
movdx,offsetring
movax,segring
movds,ax
moval,1ch
movah,25h
int21h
popds
inal,21h
andal,11111110b
out21h,al
sound:
xoral,02
out61h,al
movcx,0ffffh
wait1:
loopwait1
decdx
jnesound
实
验
内
容
预
习
报
告
3、源程序:
.modelsmall
.stack
.data
countdw45
msgdb'Thebellisringing',0dh,0ah,'$'
.code
mainprocfar
start:
movax,@data
movds,ax
moval,1ch
movah,35h
int21h
pushes
pushbx
pushds
movdx,offsetring
movax,segring
movds,ax
moval,1ch
movah,25h
int21h
popds
inal,21h
andal,11111110b
out21h,al
sti
movdi,0ffffh
delay:
movsi,0ffffh
delay1:
decsi
jnzdelay1
decdi
jnzdelay
popdx
popds
moval,1ch
movah,25h
int21h
movax,4c00h
int21h
mainendp
ringprocnear
pushds
pushax
pushcx
pushdx
movax,@data
movds,ax
sti
deccount
jnzexit
movdx,offsetmsg
movah,09h
int21h
movdx,0ffh
inal,61h
andal,0fch
sound:
xoral,02
out61h,al
movcx,0ffffh
wait1:
loopwait1
decdx
jnesound
movcount,182
exit:
cli
popdx
popcx
popax
popds
iret
ringendp
endstart
四
、
实
验
过
程
实验过程、存在的问题及解决办法:
按照课本上的源程序输入、调试。
实验结果分析:
屏幕显示字符串,并且计算机发出声音。
五、实验改进建议
输出的声音能像一个音乐,而不是一个噪音。
六、指导老师评语
七、
成绩
八
、
通
过
后
的
源
程
序
3、源程序:
.modelsmall
.stack.data
countdw45
msgdb'Thebellisringing',0dh,0ah,'$'
.code
mainprocfar
start:
movax,@data
movds,ax
moval,1ch
movah,35h
int21h
pushes
pushbx
pushds
movdx,offsetring
movax,segring
movds,ax
moval,1ch
movah,25h
int21h
popds
inal,21h
andal,11111110b
out21h,al
sti
movdi,0ffffh
delay:
movsi,0ffffh
delay1:
decsi
jnzdelay1
decdi
jnzdelay
popdxpopds
moval,1ch
movah,25h
int21h
movax,4c00h
int21h
mainendp
ringprocnear
pushds
pushax
pushcx
pushdx
movax,@data
movds,axsti
deccount
jnzexit
movdx,offsetmsg
movah,09h
int21h
movdx,0ffh
inal,61h
andal,0fch
sound:
xoral,02
out61h,al
movcx,0ffffh
wait1:
loopwait1
decdx
jnesound
movcount,182
exit:
cli
popdxpopcx
popax
popds
iret
ringendp
endstart
实验七
实验名称发声程序设计、实验性质设计性、教师签名
实验学时数4学时、实验位置、实验日期年月日、
一、实验目的
1、熟悉发声程序的设计,掌握
二、实验要求
1、掌握简单的发声程序设计
三
、
实
验
内
容
预
习
报
告
1、题目:
演奏太湖船歌曲
2、算法:
dsegsegmentpara'data';数据段
mus_freqdw2dup(330,292,330,294),330;每一个音符的频率
dw330,292,330,294,262,294,330,392,294
dw262,262,220,196,196,220,262,294,330,262,-1
mus_timedw3dup(50),25,25,50,25,25,100;每个音符所持续的时间
dw2dup(50,50,25,25),100
dw3dup(50,25,25),100
dsegends;数据段结束
freq:
movdi,[si];使计算机发出声音
cmpdi,-1
jebeg
movbx,ds:
[bp]
inal,61h
movah,al
oral,3
out61h,al
Jmpf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 实验教学 手册