- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE1
上海电力学院
实验报告
课程名称汇编语言实验项目实验3字符串传递实验
姓名石鑫磊学号班级2011252
专业信息安全教师姓名刘辉实验日期
实验目的:
熟悉字符的操作,传送指令,比较指令的使用
2.分支程序的设计方法
试验内容
1.参照试验指导书,和教材146页程序,把以下字符串ourname’(前面是学号后面是名字的拼音)从源缓冲区传递到目的缓冲区。
datasegment
src dbdoubleb
dstdb30dup(?)
dataends
codesegment
mainprocfar
assumecs:code,ds:data
start:
pushds
xorax,ax
pushax
movax,data
movds,ax
moves,ax
leasi,src;movsi,offsetsrc
leadi,dst;movdi,offsetdst
movcx,offsetdst-offsetsrc
cld
repmovsb
ret
mainendp
codeends
endstart
2.在内存DEST开始的6个单元寻找字符‘C’,如找到将字符‘C’的地址送ADDR单元,否则0送ADDR单元。
datasegment
DEST dbabcdef
ADDRR dw 6dup(?)
dataends
codesegment
mainprocfar
assumecs:code,ds:data
start:
pushds
xorax,ax
pushax
movax,data
movds,ax
moves,ax
leadi,ADDRR
movsi,0
movcx,6
s: movdl,[si]
cmp dl,c
jzaddrr0
s0: addsi,1
loops
movax,4c00h
int21h
addrr0: movax,si
mov[di],ax
adddi,2
jmps0
mainendp
codeends
endstart
3.统计输入的字符串中的字母、数字和其他字符的个数并把结果以16进制显示出来
datasegment
dat: dbg#a%o4ABCbo123gaoboOGJSIg890*()^80frgthysdadsdwergtfdfergaobogaobo
dis:db0,0,-,0,0,-,0,0,-,0,0,$
dataends
extrasegment
cap: db0
smal: db0
num: db0
other: db0
extraends
;stacksegment
;dw0
;stackends
codesegment
mainprocfar
assumecs:code,ds:data,es:extra,ss:stack
start:
pushds
xorax,ax
pushax
movax,data
movds,ax
movax,extra
moves,ax
;movax,stack
;movss,ax
;movsp,0
movsi,0
movcx,offsetdis-offsetdat
s: moval,[si]
cmpal,0
jba1
a: cmpal,9
jbeb
cmpal,A
jba1
cmpal,Z
jbea2
cmpal,a
jba1
cmpal,z
jbea3
jmpa1
a1:leabx,other
addes:[bx],1
incsi
loops
jmpo
a2:leabx,cap
addes:[bx],1
incsi
l
文档评论(0)