汇编题Word下载.docx
《汇编题Word下载.docx》由会员分享,可在线阅读,更多相关《汇编题Word下载.docx(29页珍藏版)》请在冰点文库上搜索。
data2,al
movah,4ch
int21h
实验四
3、datasegment
addr1db4,0,-2,6,-3,8,0,5,7,12,-1,20
countequ$-addr1
p_countdb0
z_countdb0
n_countdb0
codesegment'
code'
leasi,addr1
movcx,count
again:
moval,[si]
andal,al
jsminus
jzzero
incp_count
jmplop1
minus:
incn_count
zero:
incz_count
lop1:
incsi
loopagain
endstart
4、题目:
大小写转换。
;
要求:
。
将键盘输入的小写字母用大写字母显示出来。
2。
若输入大写字母则直接输出。
3。
若遇到字母之外的字符时,程序能屏幕提示“INPUTAGAIN”,要求重新输入。
4。
输入回车键,程序结束。
datasegment
string1db'
Inputagain:
$'
0ah,0dh
movah,07h
cmpal,0dh
jzexit
cmpal,41h
jbstr1
cmpal,5ah
jbedisp
cmpal,61h
cmpal,7ah
jastr1
subal,20h
disp:
movdl,al
movah,02h
jmpagain
str1:
leadx,string1
movah,09h
movdl,0dh
movdl,0ah
exit:
5、题目:
统计非数字字符的个数。
键盘输入以“$”为结束符的长度不超过的字符串(含字母、数字、其他符号),
对其中的非数字字符计数。
统计结果用十六进制数屏幕显示。
string1db80dup(?
)
numdb0
coundb0
movah,01h
incnum
cmpnum,80
jaedisp
cmpal,'
jzdisp
cmpal,30h
jbcount
cmpal,39h
jbeagain
count:
inccoun
movch,2
movbl,coun
lop:
movcl,4
rolbl,cl
moval,bl
andal,0fh
addal,30h
cmpal,3ah
jbdisp1
addal,07h
disp1:
decch
jnzlop
movdl,'
H'
实验五
6、datasegment
bufdb5,-7,4
mindb?
moval,buf
cmpal,buf+1
jlenext
moval,buf+1
next:
cmpal,buf+2
jlemove
moval,buf+2
move:
movmin,al
7、题目:
输入字符的判别。
从键盘输入字符;
若是0~9,则直接显示。
若是A~Z或a~z,则均显示“*”。
若是其他则不显示,继续等待新的字符输入。
用回车键结束程序。
code
jeexit
jbstart
jbeshuzi
jbezimu
jastart
zimu:
*'
jmpstart
shuzi:
8、题目:
统计学生成绩。
在数据段定义10个学生成绩。
统计不及格、及格、中等,良好,优秀,满分的学生人数。
统计结果分别存于自己定义各内存单元。
datasegment
scoredb80,60,75,52,90,78,86,42,100,65,-1
r5db0
r6db0
r7db0
r8db0
r9db0
r10db0
dataends
data
movax,data
movds,ax
leasi,score
cmpal,-1
jeexit
cmpal,60
jbnext0
cmpal,70
jbnext1
cmpal,80
jbnext2
cmpal,90
jbnext3
cmpal,99
jbenext4
cmpal,100
jznext5
next0:
incr5
incsi
jmpagain
next1:
incr6
next2:
incr7
next3:
incr8
next4:
incr9
next5:
incr10
movah,4ch
int21h
codeends
实验六
10、datasegment
Howareyou!
'
str1db0AH,0DH,'
MATCH$'
0AH,0DH
str2db0AH,0DH,'
NOMATCH$'
string2db'
movcx,12
leasi,string1
leadi,string2
cld
repzcmpsb
jzdisp1
leadx,str2
movah,9
jmpexit
leadx,str1
11、datasegment
buf1db128dup(?
buf2db128dup(?
mess1db'
buf1OK!
mess2db'
buf2OK!
movcx,128
movdi,offsetbuf1
moval,24h
repstosb
leadx,mess1
movsi,offsetbuf1
movdi,offsetbuf2
repmovsb
movdx,offsetmess1
12、dsegsegment
ndb0
idb1
dsegends
ssegsegmentparastack'
stack'
stkdb20dup(?
ssegends
csegsegment'
cseg,ds:
dseg
assumess:
sseg
main:
movax,dseg
xorax,ax
xorah,ah
subal,30h
xorbl,bl
incbl
movn,al
cmpbl,al
jbeputi
subal,bl
jmpputi
puti:
moval,n
xorch,ch
movcl,al
cmpcx,0
jzput1
calldispblock
put1:
addbl,bl
decbl
movcl,bl
calldispstar
jzput2
put2:
decal
cmpal,i
jzstop
inci
movbl,i
stop:
dispblockprocnear
'
again:
dispblockendp
dispstarprocnear
dispstarendp
csegends
endmain
试验七
13、datasegment
stacksegmentstack
stkdb20dup(0)
stackends
code,ss:
stack,ds:
bintohexprocnear
movbx,ax
movch,4
rotate:
rolbx,cl
jbdisp
movah,2
jnzrotate
bintohexendp
movax,stack
movss,ax
movsp,lengthstk
movax,4C5DH
callbintohex
14、datasegment
numdb2AH
rltdw?
stkdb20dup(0)
movsp,sizestk
moval,num
callfarptrbintoasc
movrlt,dx
code1segment'
code1
bintoascprocfar
andal,0f0h
shral,cl
jbnext1
movdh,al
andbl,0fh
addbl,30h
cmpbl,3ah
jbnext2
addbl,07h
movdl,bl
bintoascendp
code1ends
15、dsegsegment
sourcedb0
trandb'
---->
destinationdb1
Adiskdb'
A'
Bdiskdb'
B'
Cdiskdb'
C'
fromdb0
usingdb0
todb0
movedb0ah,0dh,'
movedisk$'
input1db'
inputthenumberofdiskofhanoitower:
input2db0ah,0dh,'
Themovingstepisasbelow:
0ah,0dh,'
stkdb40dup(?
leadx,input1
subn,30h
leadx,input2
movbl,adisk
movfrom,bl;
fromA
movbl,bdisk
movusing,bl;
usingB
movbl,cdisk
movto,bl;
toC
callmovetower
jmpstop
movetowerprocnear
cmpn,1
jzmovdisk
decn
movbl,using
movbh,to
movusing,bh
movto,bl
incn
callmovedisk
movbh,from
movfrom,bl
incn
movdisk:
callmovedisk
movetowerendp
movediskprocnear
movbl,from
movsource,bl
movbl,to
movdestination,bl
leadx,move
movah,09
movdl,n
adddl,30h
movah,02
movdl,source
leadx,tran
movdl,destination
movediskendp
endmain
实验八
16、datasegment
src1db'
Howdoyoudo!
count1equ$-src1
src2db'
Iamfine,thankyou!
count2equ$-src2
dst1dbcount1dup(?
dst2dbcount2dup(?
strmovsmacrosrc,dst,cnt
movsi,offsetsrc
movdi,offsetdst
movcx,cnt
endm
strmovssrc1,dst1,count1
strmovssrc2,dst2,count2
17、datasegment
numdb7,251,89
maxdb?
countdb82,56,179
largedb?
maxvaluemacrosrc,dst
localnext1,next2
leasi,src
cmpal,[si+1]
janext1
moval,[si+1]
janext2
movdst,al
maxvaluenum,max
maxvaluecount,large
18、datasegment
askdb'
WHATISYOURNAME?
answerdb'
Hello,$'
bufdb2