CPU汇编.docx
- 文档编号:16719722
- 上传时间:2023-07-16
- 格式:DOCX
- 页数:110
- 大小:26.86KB
CPU汇编.docx
《CPU汇编.docx》由会员分享,可在线阅读,更多相关《CPU汇编.docx(110页珍藏版)》请在冰点文库上搜索。
CPU汇编
一
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个字符的字符串,若存在将其删除,并在显示器上显示。
DATASEGMENT
BUF4DB10,13
BUF1DB'datanametimefilecodepathuserexitquittext$$'
BUF2DB5
DB?
DB5DUP(0)
BUF3DB13,10,'NOFOUND$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,ES:
DATA,DS:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVES,AX
CALLINPUT
CALLFIND
MOVAX,4C00H
INT21H
MAINENDP
INPUTPROC
LEADX,BUF2
MOVAH,0AH
INT21H
RET
INPUTENDP
OUTPUT1PROC
LEADX,BUF3
MOVAH,09H
INT21H
MOVAX,4C00H
INT21H
OUTPUT1ENDP
OUTPUT2PROC
LEADX,BUF4
MOVAH,09H
INT21H
RET
OUTPUT2ENDP
FINDPROC
LEABX,BUF1
MOVCX,10
AGAIN:
PUSHCX
MOVSI,BX
LEADI,BUF2+2
MOVCX,4
REPZCMPSB
JZTO
JMPTO2
TO:
CALLDELETE
JMPTO3
TO2:
POPCX
ADDBX,5
LOOPAGAIN
CALLOUTPUT1
TO3:
popcx
RET
FINDENDP
DELETEPROC
CLD
MOVSI,BX
ADDSI,5
MOVDI,BX
AGAIN1:
MOVSB
CMPBYTEPTR[BX],'$'
JZTO1
INCBX
JMPAGAIN1
TO1:
calloutput2
RET
DELETEENDP
CODEENDS
ENDMAIN
10.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序将上述字符串排序(升序)并插入disk使其人仍然有序,并在显示器上显示。
DATASEGMENT
BUF1DB'datanametimefilecodepathuserexitquittext$'
MINDB5
BUF2DB5
DB?
DB5DUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,ES:
DATA,DS:
DATA
MAINPROCFAR
MOVAX,DATA
MOVES,AX
MOVDS,AX
CALLINPUT
CALLINORDER
CALLOUTPUT
MOVAX,4C00H
INT21H
MAINENDP
INPUTPROC
LEADX,BUF2
MOVAH,0AH
INT21H
MOVCX,4
LEASI,BUF2+2
LEADI,BUF1+50
REPMOVSB
RET
INPUTENDP
OUTPUTPROC
LEADX,BUF1
MOVAH,09H
INT21H
RET
OUTPUTENDP
INORDERPROC
MOVSI,0
MOVCX,11
AGAIN:
MOVBX,SI
MOVDI,SI
ADDDI,5
PUSHCX
MOVCX,11
MOVAX,DI
DIVMIN
SUBCX,AX
AGAIN2:
MOVAL,BUF1[BX]
SUBAL,BUF1[DI]
JaTO
JETO3
JMPTO2
TO3:
MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPU 汇编