三个汇编语言实验报告模板.docx
《三个汇编语言实验报告模板.docx》由会员分享,可在线阅读,更多相关《三个汇编语言实验报告模板.docx(15页珍藏版)》请在冰豆网上搜索。
三个汇编语言实验报告模板
0805054228丁洪健
实验二分支与循环程序设计实验
一、实验目的
1.掌握汇编语言程序上机过程。
2.掌握汇编语言结构。
3.学习汇编语言的伪操作。
4.了解汇编程序、连接程序、DOS系统装入和返回功能。
5.掌握用DEBUG调试汇编语言程序的方法
二、实验内容
1、输入一个字符,回车后输出一个字符串,说明其类型。
2、学会定义字符串和输出字符串。
3、学会在屏幕上输出一个字符,通过判断键盘按下一个键来执行分支程序。
三、实验设备及仪器
PC兼容计算机及系统软件
四、实验要求
编制程序,实现如下功能:
1、当输入0~9的数字,按回车后随即出现一个shuzi的字符串。
2、当输入一个字母,按回车后随即出现一个zimu的字符串。
3、当输入一个符号,按回车后随即出现一个fuhao的字符串。
4、先判断ASCII码,将数字、字母、符号的ASCII分开,当你输入一个字符以后程序根据你的字符的ASCII来跳转到输出其相应的字符串。
五、问题思考
1.汇编语言程序中语句END后的标号作用是什么?
2.将字符串分别定义在不同的段,怎么取其地址,取地址有几种方法?
六、实验报告
1.画出各程序流程图,列出程序清单,加上适量注释。
2.回答问题思考。
3.针对实验目的做小结。
assumecs:
code,ds:
data
datasegment
xdb'shuzi','$'
ydb'zimu','$'
zdb'fuhao','$'
dataends
codesegment
start:
movax,data
movds,ax
movah,0
int16h
cmpal,'0'
jgshu2
zi1:
cmpal,'A'
jgzi2
zi3:
cmpal,'a'
jgzi4
zi4:
cmpal,'z'
jlzichu
jmpfuchu
zi2:
cmpal,'Z'
jlzichu
jmpzi3
shu2:
cmpal,'9'
jlshuchu
jmpzi1
shuchu:
movah,2
movbh,0
movdh,5
movdl,12
int10h
movax,data
movds,ax
movdx,offsetx
movah,9
int21h
delay1:
movah,0
int16h
cmpal,71h
jnzdelay1;键盘输入,如果不是Q,等待
movax,4c00h
int21h
zichu:
movah,2
movbh,0
movdh,5
movdl,12
int10h
movax,data
movds,ax
movdx,offsety
movah,9
int21h
delay2:
movah,0
int16h
cmpal,71h
jnzdelay2;键盘输入,如果不是Q,等待
movax,4c00h
int21h
fuchu:
movah,2
movbh,0
movdh,5
movdl,12
int10h
movax,data
movds,ax
movdx,offsetz
movah,9
int21h
delay:
movah,0
int16h
cmpal,71h
jnzdelay;键盘输入,如果不是Q,等待
movax,4c00h
int21h
codeends
endstart
实验三中断程序设计实验
二、一、实验目的
三、1、掌握DOS系统提供的DOS和BIOS功能调用方法。
四、2、巩固汇编语言程序编写方法。
五、3、掌握DOS调用和BIOS调用的基本技巧
六、二、实验内容
七、1.在屏幕上显示系统时钟,可以输入时间间隔。
八、2.运行时先在屏幕上显示提示行,提示内容自定,作用是提示用户输入他需要的显示系统时间间隔。
然后系统就按照用户输入的间隔显示系统时间。
直到按下退出键。
九、三、实验设备及仪器
一十、PC兼容计算机及系统软件
一十一、四、实验要求
一十二、1、实验前参看教材或相关参考书,了解中断的设置、保存、调用关闭的方法,注意每个功能的入口参数,出口参数以及调用的中断功能号。
一十三、2、了解怎样编写中断服务子程序。
熟练分支的跳转。
一十四、3、掌握怎样在屏幕上输入字符串,怎么处理一个十六进制的数转换为十进制显示出来。
一十五、五、问题思考
一十六、1、调用INT21H中的0AH、09H功能时,要注意什么?
用0AH输入的字符串,不加处理,能否直接用09H功能输出?
一十七、2、ASCII字符串的作用是什么,它的格式是怎样?
一十八、六、实验报告
一十九、1、画出各任务流程图,给出程序清单,并加适当的注释。
二十、2、根据程序运行结果,总结实验所得,回答问题思考所问。
二十一、3、小结中断程序主要需要设置什么?
。
datasegment
messdb'Thesysytemtimeis$'
mess1db'pleaseinputtimeinterval:
$'
countdw1
dataends
codesegment
mainprocfar
assumecs:
code,ds:
data
start:
pushds
movax,0
pushax
movax,data
movds,ax
movdx,offsetmess1
movah,09h
int21h
movcx,2
movbx,0
shu:
movah,01h
int21h
cmpal,20h;空格
jezd
cmpal,70h;p
jeexit1
cmpal,30h
jlexit1
cmpal,39h
jgexit1
subal,30h
cbw
pushcx
xchgax,bx
movcx,10d
mulcx
popcx
xchgax,bx
addbx,ax
loopnzshu;键盘输入两个字符转换成10进制显示
zd:
movax,bx
movah,0
movcl,18d
mulcl
movsi,ax;乘以18,确定中断程序的执行次数
movdl,0dh
movah,02h
int21h
movdl,0ah
movah,02h
int21h;回车换行
moval,1ch
movah,35h
int21h;保存中断
pushes
pushbx
pushds
movax,segtime
movds,ax
movdx,offsettime
moval,1ch
movah,25h
int21h;设置新中断
popds
inal,21h
andal,11111110b
out21h,al
sti;允许定时中断
delay:
movah,0
int16h
cmpal,71h
jnzdelay;键盘输入,如果不是Q,等待
popdx
popds
moval,1ch
movah,25h
int21h;恢复中断
jmpstart
exit1:
ret
mainendp
timeprocnear
pushds
pushax
pushcx
pushdx
movax,data
movds,ax
sti
deccount
jnzexit
movdx,offsetmess
movah,09h
int21h;显示字符串
movah,2ch
int21h;取系统时间
pushdx
pushcx
movax,0
moval,ch
callbian;变成10进制
callxs;显示小时
callmh;显示:
popcx
movax,0
moval,cl
callbian
callxs
callmh
popdx;显示分
pushdx
movax,0
moval,dh
callbian
callxs;显示秒
popdx
movcount,si
movdl,0dh
movah,02h
int21h
movdl,0ah
movah,02h
int21h;回车换行
exit:
cli
popdx
popcx
popax
popds
iret
timeendp
bianprocnear
movbl,0ah
divbl
movdl,al
movdh,ah
moval,10h
muldl
addal,dh
ret
bianendp
xsprocnear
pushax
movdl,al
anddl,0f0h
movcl,4
rordl,cl
adddl,30h
movah,02h
int21h
popax
movdl,al
anddl,0fh
adddl,30h
movah,02h
int21h
ret
xsendp
mhprocnear
movdl,3ah
movah,02h
int21h
ret
mhendp
codeends
endstart
实验四屏幕显示程序设计实验
一、实验目的
1.熟悉编写和调试语言程序的方法,提高编程技巧。
2.掌握用软件实现几种码制之间的转换。
二、实验要求
编写完整汇编语言程序:
1.熟练掌握如何查看DOS中断调用和BIOS中断调用表。
2.学会清屏和在屏幕上开出不同大小,不同颜色,不同分辨率的窗口。
可以在窗口中输入字符,但不能超出窗口大小,应具有卷屏功能。
3.掌握对光标的处理,如,读光标的位置,置光标的位置。
三、实验说明
1、先清屏,除去编译连接完在屏幕上留下的文字。
2、置光标位置,然后显示字符串。
四、问题思考
1、DOS和BIOS中断调用的功能寄存器的是什么?
2、熟练一些基本的功能,对于一些返回参数和功能号要记住。
五、实验报告
内容要求:
1、画出主程序、各子程序流程图,给出程序清单,并加适量注释。
2、小结模块化编程设计方法。
3、给出程序运行结果。
datasegment
db'xxxxxxxx','$'
dataends
codesegment
start:
movah,2
movbh,0
movdh,5
movdl,12
int10h
movax,data
movds,ax
movdx,0
movah,9
int21h
delay:
movah,0
int16h
cmpal,71h
jnzdelay;键盘输入,如果不是Q,等待
movax,4c00h
int21h
codeends
endstart