北京理工大学汇编上机题目代码.doc
- 文档编号:14664010
- 上传时间:2023-06-25
- 格式:DOC
- 页数:53
- 大小:268.50KB
北京理工大学汇编上机题目代码.doc
《北京理工大学汇编上机题目代码.doc》由会员分享,可在线阅读,更多相关《北京理工大学汇编上机题目代码.doc(53页珍藏版)》请在冰点文库上搜索。
1.请任意输入一个字符串,将该串倒序后在屏幕上显示
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?
)
ANSDB0DH,0AH,0FDHDUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVAL,BUF[1]
XORAH,AH
ADDSI,AX
DECSI
LEADI,ANS[2]
XORCH,CH
MOVCL,BUF[1]
AGAIN:
MOVAL,[SI]
MOV[DI],AL
DECSI
INCDI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,ANS
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2.请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上
DATASEGMENT
BUF1DB20
DB?
DB20DUP(?
)
NUM1DB?
NUM2DB?
BUF3DB13,10
BUF2DB'NUM1=',0,0,13,10,'NUM2=',0,0,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVES,AX
CALLINPUT
CALLCOUNT
CALLFIND
CALLOUTPUT
MOVAX,4C00H
INT21H
MAINENDP
INPUTPROC
MOVDX,OFFSETBUF1
MOVAH,0AH
INT21H
RET
INPUTENDP
OUTPUTPROC
LEADX,BUF3
MOVAH,9
INT21H
RET
OUTPUTENDP
COUNTPROC
MOVCX,0FFFFH
LEASI,BUF1+2
AGAIN2:
CMPBYTEPTR[SI],0DH
JZTO
INCSI
LOOPAGAIN2
TO:
NOTCX
RET
COUNTENDP
FINDPROC
PUSHCX
LEASI,BUF1+2
AGAIN:
CMPBYTEPTR[SI],''
JNZT1
INCNUM1
T1:
INCSI
LOOPAGAIN
POPCX
LEASI,BUF1+2
AGAIN1:
CMPBYTEPTR[SI],'A'
JNZT
INCNUM2
T:
INCSI
LOOPAGAIN1
MOVDL,10
MOVAL,NUM1
MOVAH,0
DIVDL
ORAX,3030H
MOVWORDPTRBUF3+7,AX
MOVAL,NUM2
MOVAH,0
DIVDL
ORAX,3030H
MOVWORDPTRBUF3+16,AX
RET
FINDENDP
CODEENDS
ENDMAIN
3.请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上
DATASEGMENT
BUF1DB20
DB?
BUF4DB20DUP(?
)
BUF3DB13,10
BUF2DB20DUP(?
)
COUNDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,ES:
DATA,DS:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVES,AX
CALLINPUT
CALLLOCATE
CALLPREPARE
CALLOUTPUT
MOVAX,4C00H
INT21H
MAINENDP
INPUTPROC
MOVDX,OFFSETBUF1
MOVAH,0AH
INT21H
RET
INPUTENDP
LOCATEPROC
LEABX,BUF1+2
DECBX
AGAIN2:
INCBX
CMPBYTEPTR[BX],''
JNZTO5
CALLDELETE
TO5:
CMPBYTEPTR[BX],0DH
JNZAGAIN2
RET
LOCATEENDP
OUTPUTPROC
LEADX,BUF1
MOVAH,9
INT21H
RET
OUTPUTENDP
DELETEPROC
PUSHBX
AGAIN3:
CMPBYTEPTR[BX],0DH
JZTO2
MOVAL,BYTEPTR[BX+1]
MOVBYTEPTR[BX],AL
INCBX
JMPAGAIN3
TO2:
POPBX
DECBX
RET
PREPAREPROC
CALLCOUNTLEN
LEASI,BUF4
ADDSI,CX
MOVBYTEPTR[SI],'$'
LEASI,BUF1
MOV[SI],0D0AH
RET
PREPAREENDP
COUNTLENPROC
MOVCX,0FFFFH
LEASI,BUF1+2
AGAIN5:
CMPBYTEPTR[SI],0DH
JZTO3
INCSI
LOOPAGAIN5
TO3:
NOTCX
RET
COUNTLENENDP
CODEENDS
ENDMAIN
4.请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上
DATASEGMENT
BUF1DB20
DB?
BUF4DB20DUP(?
)
BUF3DB13,10
BUF2DB20DUP(?
)
COUNDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,ES:
DATA,DS:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVES,AX
CALLINPUT
CALLLOCATE
CALLPREPARE
CALLOUTPUT
MOVAX,4C00H
INT21H
MAINENDP
INPUTPROC
MOVDX,OFFSETBUF1
MOVAH,0AH
INT21H
RET
INPUTENDP
LOCATEPROC
LEABX,BUF1+2
DECBX
AGAIN2:
INCBX
CMPBYTEPTR[BX],'A'
JNZTO5
CALLADDTION
TO5:
CMPBYTEPTR[BX],0DH
JNZAGAIN2
RET
LOCATEENDP
OUTPUTPROC
LEADX,BUF1
MOVAH,9
INT21H
RET
OUTPUTENDP
ADDTIONPROC
PUSHBX
AGAIN3:
INCBX
INCCOUN
CMPBYTEPTR[BX],0DH
JNZAGAIN3
AGAIN4:
MOVAL,BYTEPTR[BX]
MOVBYTEPTR[BX+1],AL
DECBX
DECCOUN
JNZAGAIN4
POPBX
MOV[BX],'CC'
RET
ADDTIONENDP
PREPAREPROC
CALLCOUNTLEN
LEASI,BUF4
ADDSI,CX
MOVBYTEPTR[SI],'$'
LEASI,BUF1
MOV[SI],0D0AH
RET
PREPAREENDP
COUNTLENPROC
MOVCX,0FFFFH
LEASI,BUF1+2
AGAIN5:
CMPBYTEPTR[SI],0DH
JZTO3
INCSI
LOOPAGAIN5
TO3:
NOTCX
RET
COUNTLENENDP
CODEENDS
ENDMAIN
5.请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上
DATASEGMENT
BUF1DB20
DB?
BUF4DB20DUP(?
)
BUF3DB13,10
BUF2DB20DUP(?
)
COUNDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,ES:
DATA,DS:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVES,AX
CALLINPUT
CALLLOCATE
CALLPREPARE
CALLOUTPUT
MOVAX,4C00H
INT21H
MAINENDP
INPUTPROC
MOVDX,OFFSETBUF1
MOVAH,0AH
INT21H
RET
INPUTENDP
LOCATEPROC
LEABX,BUF1+2
DECBX
AGAIN2:
INCBX
CMPBYTEPTR[BX],'A'
JBTO5
CMPBYTEPTR[BX],'Z'
JAETO5
CALLCHANGE
TO5:
CMPBYTEPTR[BX],0DH
JNZAGAIN2
RET
LOCATEENDP
OUTPUTPROC
LEADX,BUF1
MOVAH,9
INT21H
RET
OUTPUTENDP
CHANGEPROC
ADDBYTEPTR[BX],20H
RET
CHANGEENDP
PREPAREPROC
CALLCOUNTLEN
LEASI,BUF4
ADDSI,CX
MOVBYTEPTR[SI],'$'
LEASI,BUF1
MOV[SI],0D0AH
RET
PREPAREENDP
COUNTLENPROC
MOVCX,0FFFFH
LEASI,BUF1+2
AGAIN5:
CMPBYTEPTR[SI],0DH
JZTO3
INCSI
LOOPAGAIN5
TO3:
NOTCX
RET
COUNTLENENDP
CODEENDS
ENDMAIN
6.请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。
DATASEGMENT
BUF1DB20
DB?
BUF4DB20DUP(?
)
BUF3DB13,10
BUF2DB20DUP(?
)
COUNDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,ES:
DATA,DS:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVES,AX
CALLINPUT
CALLLOCATE
CALLPREPARE
CALLOUTPUT
MOVAX,4C00H
INT21H
MAINENDP
INPUTPROC
MOVDX,OFFSETBUF1
MOVAH,0AH
INT21H
RET
INPUTENDP
LOCATEPROC
LEABX,BUF1+2
DECBX
AGAIN2:
INCBX
CMPBYTEPTR[BX],'A'
JBTO5
CMPBYTEPTR[BX],'z'
JATO5
CMPBYTEPTR[BX],'a'
JAETO6
CMPBYTEPTR[BX],'Z'
JBETO6
JMPTO5
TO6:
CALLDELETE
TO5:
CMPBYTEPTR[BX],0DH
JNZAGAIN2
RET
LOCATEENDP
OUTPUTPROC
LEADX,BUF1
MOVAH,9
INT21H
RET
OUTPUTENDP
DELETEPROC
PUSHBX
AGAIN3:
CMPBYTEPTR[BX],0DH
JZTO2
MOVAL,BYTEPTR[BX+1]
MOVBYTEPTR[BX],AL
INCBX
JMPAGAIN3
TO2:
POPBX
DECBX
RET
PREPAREPROC
CALLCOUNTLEN
LEASI,BUF4
ADDSI,CX
MOVBYTEPTR[SI],'$'
LEASI,BUF1
MOV[SI],0D0AH
RET
PREPAREENDP
COUNTLENPROC
MOVCX,0FFFFH
LEASI,BUF1+2
AGAIN5:
CMPBYTEPTR[SI],0DH
JZTO3
INCSI
LOOPAGAIN5
TO3:
NOTCX
RET
COUNTLENENDP
CODEENDS
ENDMAIN
7.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk,并将结果在显示器上显示
DATASEGMENT
OUT1DB13,10
BUF1DB'datanametimefilecodepathuserexitquittext$'
BUF2DB5
DB?
BUFDB5DUP(?
)
BUF0DB'disk'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVES,AX
CALLINPUT
CALLFIND
CALLOUTPUT
MOVAX,4C00H
INT21H
MAINENDP
INPUTPROC
MOVDX,OFFSETBUF2
MOVAH,0AH
INT21H
RET
INPUTENDP
OUTPUTPROC
LEADX,OUT1
MOVAH,9
INT21H
RET
OUTPUTENDP
FINDPROC
LEABX,BUF1
MOVCX,10
AGAIN:
MOVSI,BX
LEADI,BUF
PUSHCX
MOVCX,4
REPZCMPSB
JZTO
JMPTP2
TO:
CALLCHANGE
TP2:
POPCX
ADDBX,5
LOOPAGAIN
RET
FINDENDP
CHANGEPROC
MOVAX,WORDPTRbuf0
MOVWORDPTR[BX],AX
MOVAX,WORDPTRbuf0+2
MOVWORDPTR[BX+2],AX
RET
CHANGEENDP
CODEENDS
ENDMAIN
8.现有一组字符串为ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按ASCII大小排序,并在显示器上显示。
DATASEGMENT
BUF1DB'ramyesredthegetforandkeynotmay$'
MINDB4
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,ES:
DATA,DS:
DATA
MAINPROCFAR
MOVAX,DATA
MOVES,AX
MOVDS,AX
CALLINORDER
CALLOUTPUT
MOVAX,4C00H
INT21H
MAINENDP
OUTPUTPROC
LEADX,BUF1
MOVAH,09H
INT21H
RET
OUTPUTENDP
INORDERPROC
MOVSI,0
MOVCX,10
AGAIN:
MOVBX,SI
MOVDI,SI
ADDDI,4
PUSHCX
MOVCX,10
MOVAX,DI
DIVMIN
SUBCX,AX
AGAIN2:
MOVAL,BUF1[BX]
SUBAL,BUF1[DI]
JBTO
JETO3
JMPTO2
TO3:
MOVAL,BUF1[BX+1]
SUBAL,BUF1[DI+1]
JBTO
JMPTO2
TO:
MOVBX,DI
TO2:
ADDDI,4
LOOPAGAIN2
PUSHWORDPTRBUF1[BX]
PUSHWORDPTRBUF1[BX+2]
PUSHWORDPTRBUF1[SI]
PUSHWORDPTRBUF1[SI+2]
POPWORDPTRBUF1[BX+2]
POPWORDPTRBUF1[BX]
POPWORDPTRBUF1[SI+2]
POPWORDPTRBUF1[SI]
POPCX
ADDSI,4
deccx
CMPCX,1
JNZAGAIN
RET
INORDERENDP
CODEENDS
ENDMAIN
9.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其删除,并在显示器上显示。
DATASE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京理工大学 汇编 上机 题目 代码