重庆大学汇编实验报告5.docx
- 文档编号:6003229
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:14
- 大小:495.26KB
重庆大学汇编实验报告5.docx
《重庆大学汇编实验报告5.docx》由会员分享,可在线阅读,更多相关《重庆大学汇编实验报告5.docx(14页珍藏版)》请在冰豆网上搜索。
重庆大学汇编实验报告5
《汇编语言程序设计》实验报告
年级、专业、班级
姓名
实验题目
实验5:
句子中匹配的子串查找
实验时间
2013年5月8日
实验地点
DS1421
实验成绩
实验性质
□验证性设计性综合性
教师评价:
□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;
□实验结果正确;□语法、语义正确;□报告规范;
其他:
评价教师签名:
一、实验目的
输入一个关键字,然后在随后输入的句子中查找是否存在匹配的子串,如果存在就输出配置的位置,主要联系循环调用子程序来完成上述目的。
二、实验项目内容
1编写一个程序,接受用户输入的一个关键字
2提示用户输入新的字符串,在字符串中查找和定位关键字的位置
3如果定位成功则输出Match,否者输出Notmatch。
4要求撰写必要程序模块设计图和主要的流程
3、实验过程或算法(源程序)
(如果老师要试运行下面的代码,要保证屏幕上有足够的空白)
assumecs:
code,ds:
prompt
datasegment
keyworddb8,0,8dup(?
)
stringdb32,0,32dup(?
)
dataends
promptsegment
s0db'Enterthekeyword:
','$'
s1db'Enterthestring:
','$'
s2db'Match.','$'
s3db'Notmatch.','$'
s4db'location:
h','$'
tabledb'0123456789abcde'
promptends
codesegment
start:
callEnterKey
callEnterString
callPatternMatch
movax,4c00h
int21h
;-----------------------------------------------
EnterKey:
pushax
pushdx
pushds
movax,prompt
movds,ax
movdx,offsets0
movah,9
int21h
movax,data
movds,ax
movdx,offsetkeyword
movah,0ch
moval,0ah
int21h
popds
popdx
popax
ret
;-----------------------------------------------
EnterString:
pushax
pushdx
pushds
callNextLine
movax,prompt
movds,ax
movdx,offsets1
movah,9
int21h
movax,data
movds,ax
movdx,offsetString
movah,0ch
moval,0ah
int21h
popds
popdx
popax
ret
;-------------------------------------------------
NextLine:
pushax
pushdx
movah,3
int10h
incdh
movdl,0
movah,2
int10h
popdx
popax
ret
;---------------------------------------------------
PatternMatch:
pushax
pushbx
pushcx
pushdx
pushds
pushes
pushdi
pushsi
movax,data
movds,ax
movsi,offsetkeyword
moves,ax
movdi,offsetstring
movbh,0
movbl,ds:
[si+1]
decbx
movch,0
movcl,es:
[di+1]
deccx
subcx,bx
addsi,2
adddi,2
movax,0
movdx,0
sub0:
callIsMatch
cmpax,0
jnesuccess
incdi
incdx
loopsub0
callNextLine
movax,prompt
movds,ax
movdx,offsets3
movah,9
int21h
jmpPatRet
success:
callNextLine
movax,prompt
movds,ax
pushdx
movdx,offsets2
movah,9
int21h
popdx
callShowLocation
PatRet:
popsi
popdi
popes
popds
popdx
popcx
popbx
popax
ret
;-------------------------------------------------
IsMatch:
pushcx
pushdx
pushdi
pushsi
movcx,bx
sub1:
movdx,es:
[di]
cmpdx,ds:
[si]
jneover
incdi
incsi
loopsub1
movax,1
over:
popsi
popdi
popdx
popcx
ret
;---------------------------------------------------
ShowLocation:
pushax
pushbx
pushdx
pushds
pushsi
movax,prompt
movds,ax
movdh,dl
anddh,00001111b
movbh,0
movbl,dh
movdh,table[bx]
shrdl,1
shrdl,1
shrdl,1
shrdl,1
movbh,0
movbl,dl
movdl,table[bx]
movsi,offsets4
addsi,9
movds:
[si],dx
movdx,offsets4
movah,9
int21h
popsi
popds
popdx
popbx
popax
ret
;------------------------------------------------
codeends
endstart
流程图为:
程序解释:
4、实验结果及分析和(或)源程序调试过程
程序运行结果:
可以看出,当输入的关键字为“dao”,字符串为,”chendaoxian”时输出匹配,并且输出16进制表示的位置;当关键字为“dao”,字符串为”zhongjiang”时,输出不匹配。
由于还不熟悉汇编语言,程序还没实现怎么滚动屏幕,使得输出语句满屏时不会出错。
通过该实验,我了解了这么循环调用子程序。
报告创建时间:
2013年5月8日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 重庆大学 汇编 实验 报告