




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?)
STROUTDB0DH,0AH,'A=000'
DB0DH,0AH,'SPACE=000','$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JNENOTA
CMPSTROUT[10],'9'
JEATEN
INCSTROUT[10]
JMPNEXT
ATEN:
CMPSTROUT[9],'9'
JEAHUN
MOVSTROUT[10],'0'
INCSTROUT[9]
JMPNEXT
AHUN:
MOVSTROUT[10],'0'
MOVSTROUT[9],'0'
INCSTROUT[8]
JMPNEXT
NOTA:
CMPBYTEPTR[SI],''
JNENOTSPACE
CMPSTROUT[21],'9'
JESPACETEN
INCSTROUT[21]
JMPNEXT
SPACETEN:
CMPSTROUT[20],'9'
JESPACEHUN
MOVSTROUT[21],'0'
INCSTROUT[20]
JMPNEXT
SPACEHUN:
MOVSTROUT[21],'0'
MOVSTROUT[20],'0'
INCSTROUT[19]
NOTSPACE:
NEXT:
INCSI
LOOPAGAIN
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],''
JESPACE
MOVAL,[SI]
MOV[DI],AL
INCDI
SPACE:
INCSI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
4
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JNENOTA
MOVBYTEPTR[DI],'B'
JMPNEXT
NOTA:
MOVAL,[SI]
MOV[DI],AL
NEXT:
INCSI
INCDI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
5
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JNZNOTA
MOVWORDPTR[DI],'CC'
ADDDI,2
JMPNEXT
NOTA:
MOVAL,[SI]
MOV[DI],AL
INCDI
NEXT:
INCSI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JBNOTUP
CMPBYTEPTR[SI],'Z'
JANOTUP
MOVAL,[SI]
ADDAL,20H
MOV[DI],AL
JMPNEXT
NOTUP:
MOVAL,[SI]
MOV[DI],AL
NEXT:
INCSI
INCDI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
7
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JBNOTUP
CMPBYTEPTR[SI],'Z'
JANOTUP
INCSI
JMPNEXT
NOTUP:
CMPBYTEPTR[SI],'a'
JBNOTALPHA
CMPBYTEPTR[SI],'z'
JANOTALPHA
INCSI
JMPNEXT
NOTALPHA:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
NEXT:
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
8
DATASEGMENT
BUFDB05H
DB?
DB05HDUP(?)
STROUTDB0DH,0AH,'data'
DB0DH,0AH,'name'
DB0DH,0AH,'time'
DB0DH,0AH,'file'
DB0DH,0AH,'code'
DB0DH,0AH,'path'
DB0DH,0AH,'user'
DB0DH,0AH,'exit'
DB0DH,0AH,'quit'
DB0DH,0AH,'text','$'
REPLACEDB'disk'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEABX,STROUT[2]
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCX,10
AGAIN:
CLD
PUSHCX
MOVCX,4
REPZCMPSB
POPCX
JNZNEXT
LEASI,REPLACE
MOVDI,BX
MOVDX,4
SUBAGAIN:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
DECDX
JNZSUBAGAIN
JMPEXIT
NEXT:
LEASI,BUF[2]
ADDBX,6
MOVDI,BX
LOOPAGAIN
EXIT:
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
9
DATASEGMENT
BUFDB0DH,0AH,'ram'
DB0DH,0AH,'yes'
DB0DH,0AH,'red'
DB0DH,0AH,'the'
DB0DH,0AH,'get'
DB0DH,0AH,'for'
DB0DH,0AH,'and'
DB0DH,0AH,'key'
DB0DH,0AH,'not'
DB0DH,0AH,'may','$'
TMPDB'???'
DATAENDS
STACKSEGMENTSTACK
DB0FFHDUP(?)
STACKENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA
MAINPROCNEAR
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEABX,BUF[2]
MOVDH,9
AGAIN0:
MOVDI,BX
MOVSI,DI
ADDSI,5
MOVDL,DH
AGAIN1:
PUSHSI
PUSHDI
MOVCX,3
CLD
REPZCMPSB
POPDI
POPSI
JANOTABOVE
MOVDI,SI
JMPNEXT1
NOTABOVE:
NEXT1:
ADDSI,5
DECDL
JNZAGAIN1
NEXT0:
CALLXCHGS3
ADDBX,5
DECDH
JNZAGAIN0
LEADX,BUF
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
MAINENDP
XCHGS3PROCNEAR
PUSHSI
PUSHDI
PUSHCX
MOVSI,DI
MOVDI,BX
MOVCX,3
AGAINXCHGS3:
MOVAL,[SI]
MOVAH,[DI]
MOV[SI],AH
MOV[DI],AL
INCSI
INCDI
LOOPAGAINXCHGS3
POPCX
POPSI
POPDI
RET
XCHGS3ENDP
CODEENDS
ENDSTART
10
DATASEGMENT
BUFDB05H
DB?
DB05HDUP(?)
STROUTDB0DH,0AH,'data','$'
DB0DH,0AH,'name','$'
DB0DH,0AH,'time','$'
DB0DH,0AH,'file','$'
DB0DH,0AH,'code','$'
DB0DH,0AH,'path','$'
DB0DH,0AH,'user','$'
DB0DH,0AH,'exit','$'
DB0DH,0AH,'quit','$'
DB0DH,0AH,'test','$'
DATAENDS
STACKSEGMENTSTACK
DB100DUP(?)
STACKENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVDL,10
AGAIN0:
PUSHSI
PUSHDI
MOVCX,4
CLD
REPZCMPSB
POPDI
POPSI
JEDEL
ADDDI,7
DECDL
JNZAGAIN0
JMPEXIT
DEL:
CLD
MOVAL,20H
MOVCX,4
REPSTOSB
EXIT:
LEADX,STROUT
MOVCX,10
AGAIN1:
PUSHDX
MOVBX,DX
CMPBYTEPTR[BX+2],''
JENEXT1
MOVAH,09H
INT21H
NEXT1:
POPDX
ADDDX,7
LOOPAGAIN1
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
11
DATASEGMENT
STRINSERTDB'disk'
BUFDB0DH,0AH,'data'
DB0DH,0AH,'name'
DB0DH,0AH,'time'
DB0DH,0AH,'file'
DB0DH,0AH,'code'
DB0DH,0AH,'path'
DB0DH,0AH,'user'
DB0DH,0AH,'exit'
DB0DH,0AH,'quit'
DB0DH,0AH,'test'
DB0DH,0AH,''
DB0DH,0AH,'$'
DATAENDS
STACKSEGMENTSTACK
DW0FFHDUP(?)
STACKENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEABX,BUF[2]
MOVDL,9
AGAIN0:
MOVDI,BX
MOVSI,DI
ADDSI,6
MOVDH,DL
AGAIN1:
PUSHSI
PUSHDI
CLD
MOVCX,4
REPZCMPSB
POPDI
POPSI
JANEXT1
MOVDI,SI
NEXT1:
ADDSI,6
DECDH
JNZAGAIN1
NEXT0:
CALLXCHGS4
ADDBX,6
DECDL
JNZAGAIN0
LEADX,BUF
MOVAH,09H
INT21H
LEABX,BUF[2+6*10]
LEASI,STRINSERT
LEADI,BUF[2]
MOVDL,10
AGAIN2:
PUSHSI
PUSHDI
CLD
MOVCX,4
REPCMPSB
POPDI
POPSI
JBSHIFTRIGHT
NEXT2:
ADDDI,6
DECDL
JNZAGAIN2
SHIFTRIGHT:
PUSHDI
MOVAX,BX
SUBAX,DI
ADDBX,3
MOVSI,BX
SUBSI,6
MOVDI,BX
STD
MOVCX,AX
REPMOVSB
INSERT:
POPDI
LEASI,STRINSERT
CLD
MOVCX,4
REPMOVSB
LEADX,BUF
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
XCHGS4PROCNEAR
PUSHSI
PUSHDI
PUSHCX
MOVSI,BX
CLD
MOVCX,4
AGAINXCHGS4:
MOVAL,[SI]
MOVAH,[DI]
MOV[SI],AH
MOV[DI],AL
INCSI
INCDI
LOOPAGAINXCHGS4
POPCX
POPDI
POPSI
RET
XCHGS4ENDP
CODEENDS
ENDSTART
12
DATASEGMENT
BUFDB50H
DB51HDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
TMPDB0FCHDUP('0')
DATAENDS
STACK_SEGSEGMENTSTACK
DW0FFHDUP(?)
STACK_SEGENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK_SEG
MAINPROCNEAR
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN0:
SUBBYTEPTR[SI],30H
NEXT0:
INCSI
LOOPAGAIN0
LEABX,TMP
MOVCX,0
AGAIN1:
CALLDECDEC
CMPAX,0
JNEEXIT
CALLHEXINC
JMPAGAIN1
EXIT:
CALLCONV
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
MAINENDP
DECDECPROCNEAR
PUSHCX
PUSHBX
LEASI,BUF[2]
MOVBX,SI
MOVAL,BUF[1]
XORAH,AH
ADDSI,AX
DECSI
MOVDI,SI
BORROW:
CMPBYTEPTR[SI],0
JNEDECING
DECSI
CMPSI,BX
JBHALT
JMPBORROW
DECING:
DECBYTEPTR[SI]
INCSI
AGAINDEC:
CMPSI,DI
JAEXITDECDEC
MOVBYTEPTR[SI],09H
INCSI
JMPAGAINDEC
HALT:
MOVAX,1
JMPDECRET
EXITDECDEC:
MOVAX,0
DECRET:
POPBX
POPCX
RET
DECDECENDP
HEXINCPROCNEAR
PUSHCX
LEASI,TMP
CARRY:
CMPBYTEPTR[SI],'F'
JNEINCING
INCSI
JMPCARRY
INCING:
CMPBYTEPTR[SI],'9'
JNZNOTADDTEN
MOVBYTEPTR[SI],'A'
JMPBREAK0
NOTADDTEN:
INCBYTEPTR[SI]
BREAK0:
CMPSI,BX
JBNOTA
MOVBX,SI
NOTA:
MOVAL,'0'
CLD
LEADI,TMP
MOVCX,SI
SUBCX,DI
REPSTOSB
EXITINC:
POPCX
RET
HEXINCENDP
CONVPROCNEAR
MOVSI,BX
LEADI,TMP
SUBBX,DI
INCBX
MOVCX,BX
LEADI,STROUT[2]
AGAINCONV:
MOVAL,[SI]
MOV[DI],AL
DECSI
INCDI
LOOPAGAINCONV
MOVBYTEPTR[DI],'$'
RET
CONVENDP
CODEENDS
ENDSTART
13
DATASEGMENT
BUFDB50H
DB51HDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
TMPDB0FCHDUP('0')
DATAENDS
STACK_SEGSEGMENTSTACK
DW0FFHDUP(?)
STACK_SEGENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK_SEG
MAINPROCNEAR
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN0:
SUBBYTEPTR[SI],30H
NEXT0:
INCSI
LOOPAGAIN0
LEABX,TMP
MOVCX,0
AGAIN1:
CALLDECDEC
CMPAX,0
JNEEXIT
CALLBININC
JMPAGAIN1
EXIT:
CALLCONV
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
MAINENDP
DECDECPROCNEAR
PUSHCX
PUSHBX
LEASI,BUF[2]
MOVBX,SI
MOVAL,BUF[1]
XORAH,AH
ADDSI,AX
DECSI
MOVDI,SI
BORROW:
CMPBYTEPTR[SI],0
JNEDECING
DECSI
CMPSI,BX
JBHALT
JMPBORROW
DECING:
DECBYTEPTR[SI]
INCSI
AGAINDEC:
CMPSI,DI
JAEXITDECDEC
MOVBYTEPTR[SI],09H
INCSI
JMPAGAINDEC
HALT:
MOVAX,1
JMPDECRET
EXITDECDEC:
MOVAX,0
DECRET:
POPBX
POPCX
RET
DECDECENDP
BININCPROCNEAR
PUSHCX
LEASI,TMP
CARRY:
CMPBYTEPTR[SI],'1'
JNEINCING
INCSI
JMPCARRY
INCING:
INCBYTEPTR[SI]
CMPSI,BX
JBNOTA
MOVBX,SI
NOTA:
MOVAL,'0'
CLD
LEADI,TMP
MOVCX,SI
SUBCX,DI
REPSTOSB
EXITINC:
POPCX
RET
BININCENDP
CONVPROCNEAR
MOVSI,BX
LEADI,TMP
SUBBX,DI
INCBX
MOVCX,BX
LEADI,STROUT[2]
AGAINCONV:
MOVAL,[SI]
MOV[DI],AL
DECSI
INCDI
LOOPAGAINCONV
MOVBYTEPTR[DI],'$'
RET
CONVENDP
CODEENDS
ENDSTART
14
DATASEGMENT
BUFDB50H
DB51HDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
TMPDB0FCHDUP('0')
DATAENDS
STACK_SEGSEGMENTSTACK
DW0FFHDUP(?)
STACK_SEGENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK_SEG
MAINPROCNEAR
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN0:
SUBBYTEPTR[SI],30H
NEXT0:
INCSI
LOOPAGAIN0
LEABX,TMP
MOVCX,0
AGAIN1:
CALLBINDEC
CMPAX,0
JNEEXIT
CALLHEXINC
JMPAGAIN1
EXIT:
CALLCONV
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
MAINENDP
BINDECPROCNEAR
PUSHCX
PUSHBX
LEASI,BUF[2]
MOVBX,SI
MOVAL,BUF[1]
XORAH,AH
ADDSI,AX
DECSI
MOVDI,SI
BORROW:
CMPBYTEPTR[SI],0
JNEDECING
DECSI
CMPSI,BX
JBHALT
JMPBORROW
DECING:
DECBYTEPTR[SI]
INCSI
AGAINDEC:
CMPSI,DI
JAEXITBINDEC
MOVBYTEPTR[SI],01H
INCSI
JMPAGAINDEC
HALT:
MOVAX,1
JMPDECRET
EXITBINDEC:
MOVAX,0
DECRET:
POPBX
POPCX
RET
BINDECENDP
HEXINCPROCNEAR
PUSHCX
LEASI,TMP
CARRY:
CMPBYTEPTR[SI],'F'
JNEINCING
INCSI
JMPCARRY
INCING:
CMPBYTEPTR[SI],'9'
JNZNOTADDTEN
MOVBYTEPTR[SI],'A'
JMPBREAK0
NOTADDTEN:
INCBYTEPTR[SI]
BREAK0:
CMPSI,BX
JBNOTA
MOVBX,SI
NOTA:
MOVAL,'0'
CLD
LEADI,TMP
MOVCX,SI
SUBCX,DI
REPSTOSB
EXITINC:
POPCX
RET
HEXINCENDP
CONVPROCNEAR
MOVSI,BX
LEADI,TMP
SUBBX,DI
INCBX
MOVCX,BX
LEADI,STROUT[2]
AGAINCONV:
MOVAL,[SI]
MOV[DI],AL
DECSI
INCDI
LOOPAGAINCONV
MOVBYTEPTR[DI],'$'
RET
CONVENDP
CODEENDS
ENDSTART
15
DATASEGMENT
BUFDB50H
DB51HDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
TMPDB0FCHDUP('0')
DATAENDS
STACK_SEGSEGMENTSTACK
DW0FFHDUP(?)
STACK_SEGENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK_SEG
MAINPROCNEAR
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN0:
SUBBYTEPTR[SI],30H
NEXT0:
INCSI
LOOPAGAIN0
LEABX,TMP
MOVCX,0
AGAIN1:
CALLBINDEC
CMPAX,0
JNEEXIT
CALLDECINC
JMPAGAIN1
EXIT:
CALLCONV
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
MAINENDP
BINDECPROCNEAR
PUSHCX
PUSHBX
LEASI,BUF[2]
MOVBX,SI
MOVAL,BUF[1]
XORAH,AH
ADDSI,AX
DECSI
MOVDI,SI
BORROW:
CMPBYTEPTR[SI],0
JNEDECING
DECSI
CMPSI,BX
JBHALT
JMPBORROW
DECING:
DECBYTEPTR[SI]
INCSI
AGAINDEC:
CMPSI,DI
JAEXITBINDEC
MOVBYTEPTR[SI],01H
INCSI
JMPAGAINDEC
HALT:
MOVAX,1
JMPDECRET
EXITBINDEC:
MOVAX,0
DECRET:
POPBX
POPCX
RET
BINDECENDP
DECINCPROCNEAR
PUSHCX
LEASI,TMP
CARRY:
CMPBYTEPTR[SI],'9'
JNEINCING
INCSI
JMPCARRY
INCING:
INCBYTEPTR[SI]
CMPSI,BX
JBNOTA
MOVBX,SI
NOTA:
MOVAL,'0'
CLD
LEADI,TMP
MOVCX,SI
SUBCX,DI
REPSTOSB
EXITINC:
POPCX
RET
DECINCENDP
CONVPROCNEAR
MOVSI,BX
LEADI,TMP
SUBBX,DI
INCBX
MOVCX,BX
LEADI,STROUT[2]
AGAINCONV:
MOVAL,[SI]
MOV[DI],AL
DECSI
INCDI
LOOPAGAINCONV
MOVBYTEPTR[DI],'$'
RET
CONVENDP
CODEENDS
ENDSTART
16
DATASEGMENT
BUFDB50H
DB51HDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
TMPDB0FCHDUP('0')
DATAENDS
STACK_SEGSEGMENTSTACK
DW0FFHDUP(?)
STACK_SEGENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK_SEG
MAINPROCNEAR
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN0:
CMPBYTEPTR[SI],'0'
JBNOTNUM
CMPBYTEPTR[SI],'9'
JANOTNUM
SUBBYTEPTR[SI],30H
JMPNEXT0
NOTNUM:
CMPBYTEPTR[SI],'A'
JBISDOWN
CMPBYTEPTR[SI],'Z'
JAISDOWN
SUBBYTEPTR[SI],37H
JMPNEXT0
ISDOWN:
SUBBYTEPTR[SI],57H
NEXT0:
INCSI
LOOPAGAIN0
LEABX,TMP
MOVCX,0
AGAIN1:
CALLHEXDEC
CMPAX,0
JNEEXIT
CALLDECINC
JMPAGAIN1
EXIT:
CALLCONV
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
MAINENDP
HEXDECPROCNEAR
PUSHCX
PUSHBX
LEASI,BUF[2]
MOVBX,SI
MOVAL,BUF[1]
XORAH,AH
ADDSI,AX
DECSI
MOVDI,SI
BORROW:
CMPBYTEPTR[SI],0
JNEDECING
DECSI
CMPSI,BX
JBHALT
JMPBORROW
DECING:
DECBYTEPTR[SI]
INCSI
AGAINDEC:
CMPSI,DI
JAEXITHEXDEC
MOVBYTEPTR[SI],0FH
INCSI
JMPAGAINDEC
HALT:
MOVAX,1
JMPHEXRET
EXITHEXDEC:
MOVAX,0
HEXRET:
POPBX
POPCX
RET
HEXDECENDP
DECINCPROCNEAR
PUSHCX
LEASI,TMP
CARRY:
CMPBYTEPTR[SI],'9'
JNEINCING
INCSI
JMPCARRY
INCING:
INCBYTEPTR[SI]
CMPSI,BX
JBNOTA
MOVBX,SI
NOTA:
MOVAL,'0'
CLD
LEADI,TMP
MOVCX,SI
SUBCX,DI
REPSTOSB
EXITINC:
POPCX
RET
DECINCENDP
CONVPROCNEAR
MOVSI,BX
LEADI,TMP
SUBBX,DI
INCBX
MOVCX,BX
LEADI,STROUT[2]
AGAINCONV:
MOVAL,[SI]
MOV[DI],AL
DECSI
INCDI
LOOPAGAINCONV
MOVBYTEPTR[DI],'$'
RET
CONVENDP
CODEENDS
ENDSTART
17
DATASEGMENT
BUFDB50H
DB51HDUP(?)
STROUTDB0DH,0AH,0FDHDUP(?)
TMPDB0FCHDUP('0')
DATAENDS
STACK_SEGSEGMENTSTACK
DW0FFHDUP(?)
STACK_SEGENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK_SEG
MAINPROCNEAR
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN0:
CMPBYTEPTR[SI],'0'
JBNOTNUM
CMPBYTEPTR[SI],'9'
JANOTNUM
SUBBYTEPTR[SI],30H
JMPNEXT0
NOTNUM:
CMPBYTEPTR[SI],'A'
JBISDOWN
CMPBYTEPTR[SI],'Z'
JAISDOWN
SUBBYTEPTR[SI],37H
JMPNEXT0
ISDOWN:
SUBBYTEPTR[SI],57H
NEXT0:
INCSI
LOOPAGAIN0
LEABX,TMP
MOVCX,0
AGAIN1:
CALLHEXDEC
CMPAX,0
JNEEXIT
CALLBININC
JMPAGAIN1
EXIT:
CALLCONV
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
MAINENDP
HEXDECPROCNEAR
PUSHCX
PUSHBX
LEASI,BUF[2]
MOVBX,SI
MOVAL,BUF[1]
XORAH,AH
ADDSI,AX
DECSI
MOVDI,SI
BORROW:
CMPBYTEPTR[SI],0
JNEDECING
DECSI
CMPSI,BX
JBHALT
JMPBORROW
DECING:
DECBYTEPTR[SI]
INCSI
AGAINDEC:
CMPSI,DI
JAEXITHEXDEC
MOVBYTEPTR[SI],0FH
INCSI
JMPAGAINDEC
HALT:
MOVAX,1
JMPHEXRET
EXITHEXDEC:
MOVAX,0
HEXRET:
POPBX
POPCX
RET
HEXDECENDP
BININCPROCNEAR
PUSHCX
LEASI,TMP
CARRY:
CMPBYTEPTR[SI],'1'
JNEINCING
INCSI
JMPCARRY
INCING:
INCBYTEPTR[SI]
CMPSI,BX
JBNOTA
MOVBX,SI
NOTA:
MOVAL,'0'
CLD
LEADI,TMP
MOVCX,SI
SUBCX,DI
REPSTOSB
EXITINC:
POPCX
RET
BININCENDP
CONVPROCNEAR
MOVSI,BX
LEADI,TMP
SUBBX,DI
INCBX
MOVCX,BX
LEADI,STROUT[2]
AGAINCONV:
MOVAL,[SI]
MOV[DI],AL
DECSI
INCDI
LOOPAGAINCONV
MOVBYTEPTR[DI],'$'
RET
CONVENDP
CODEENDS
ENDSTART
18
DATASEGMENT
BUFDB38H,4AH,0C5H,83H,9CH,0B4H,7FH,0C4H,05H,0F5H
COUNTDB$-BUF
STROUTDB0DH,0AH,'NEGATIVENUMBER=0','$'
STRTMPDB4DUP(?)
STRTENDB0DH,0AH,'NEGSUM=-',4DUP(?),'$'
NEGSUMDW0
DATAENDS
STACK_SEGSEGMENTSTACK
DW100DUP(?)
STACK_SEGENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,SS:STACK_SEG
START:
MOVAX,DATA
MOVDS,AX
LEASI,BUF
MOVCL,COUNT
XORCH,CH
AGAIN0:
CMPBYTEPTR[SI],0
JGPOSITIVE
INCSTROUT[18]
MOVAL,[SI]
NEGAL
XORAH,AH
ADDNEGSUM,AX
POSITIVE:
INCSI
LOOPAGAIN0
LEASI,STRTMP
MOVAX,NEGSUM
MOVCL,10
CONV:
DIVCL
CMPAL,0
MOV[SI],AH
JEEXITCONV
INCSI
CBW
JMPCONV
EXITCONV:
LEASI,STRTMP
MOVCX,4
AGAIN1:
ADDBYTEPTR[SI],30H
INCSI
LOOPAGAIN1
LEASI,STRTMP
ADDSI,3
LEADI,STRTEN[10]
MOVCX,4
AGAIN2:
MOVAL,[SI]
MOV[DI],AL
DECSI
INCDI
LOOPAGAIN2
LEADX,STROUT
MOVAH,09H
INT21H
LEADX,STRTEN
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
19
DATASEGMENT
BUF1DB7
DB8DUP(?)
BUF2DB7
DB8DUP(?)
TMPDB4DUP(?)
STROUTDB0DH,0AH,7DUP('0'),'$'
STRENTDB0DH,0AH,'$'
DATAENDS
STACK_SEGSEGMENT
DW100DUP(?)
STACK_SEGENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,SS:STACK_SEG
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF1
MOVAH,0AH
INT21H
LEADX,STRENT
MOVAH,09H
INT21H
LEADX,BUF2
MOVAH,0AH
INT21H
LEASI,BUF1[2]
MOVCX,6
AGAIN0:
SUBBYTEPTR[SI],30H
INCSI
LOOPAGAIN0
LEASI,BUF2[2]
MOVCX,6
AGAIN1:
SUBBYTEPTR[SI],30H
INCSI
LOOPAGAIN1
LEASI,BUF1[2]
ADDSI,5
LEADI,BUF2[2]
ADDDI,5
LEABX,STROUT[8]
MOVCX,6
CLC
AGAIN3:
MOVAL,[SI]
ADCAL,[DI]
CLC
CMPAL,10
JAECARRY
ADD[BX],AL
JMPNEXT3
CARRY:
SUBAL,10
ADD[BX],AL
STC
NEXT3:
DECSI
DECDI
DECBX
LOOPAGAIN3
ADCBYTEPTR[BX],0
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
20
DATASEGMENT
BUF1DB9
DB10DUP(?)
BUF2DB9
DB10DUP(?)
TMPDB4DUP(?)
STROUTDB0DH,0AH,9DUP('0'),'$'
STRENTDB0DH,0AH,'$'
DATAENDS
STACK_SEGSEGMENTSTACK
DW100DUP(?)
STACK_SEGENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,SS:STACK_SEG
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF1
MOVAH,0AH
INT21H
LEADX,STRENT
MOVAH,09H
INT21H
LEADX,BUF2
MOVAH,0AH
INT21H
LEASI,BUF1[2]
MOVCX,8
AGAIN0:
SUBBYTEPTR[SI],30H
INCSI
LOOPAGAIN0
LEASI,BUF2[2]
MOVCX,8
AGAIN1:
SUBBYTEPTR[SI],30H
INCSI
LOOPAGAIN1
LEASI,BUF1[2]
ADDSI,7
LEADI,BUF2[2]
ADDDI,7
LEABX,STROUT[10]
MOVCX,8
CLC
AGAIN3:
MOVAL,[SI]
ADCAL,[DI]
CLC
CMPAL,10
JAECARRY
ADD[BX],AL
JMPNEXT3
CARRY:
SUBAL,10
ADD[BX],AL
STC
NEXT3:
DECSI
DECDI
DECBX
LOOPAGAIN3
ADCBYTEPTR[BX],0
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
21
DATASEGMENT
TEMPDB3
DB?
DB3DUP(?)
BUFDB0DH,0AH,'SUM=',3DUP(?),'$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
LEADI,BUF
MOVSI,0
LEADX,TEMP
MOVCH,10
INPUT:DECCH
JZDISP
MOVAH,0AH
INT21H
MOVBX,DX
MOVDL,2
MOVAL,[BX+2]
CMPAL,39H
JNAIS0_9
JMPISA_F
LOWNUM:MOVAH,AL
MOVAL,[BX+3]
CMPAL,39H
JNAIS0_9
JMPISA_F
IS0_9:SUBAL,30H
DECDL
JZLTOS
JMPLOWNUM
ISA_F:SUBAL,37H
DECDL
JZLTOS
JMPLOWNUM
LTOS:MOVCL,4
SHLAH,CL
ORAL,AH
ANDAX,00FFH
ADCSI,AX
JMPINPUT
DISP:LEADI,BUF+9
MOVAX,SI
CALLHTOB
LEADX,BUF
MOVAH,9
INT21H
MOVAH,4CH
INT21H
MAINENDP
HTOBPROCNEAR
MOVCX,16
INCDI
AGAIN3:MOVDX,0
DIVCX
DECDI
CMPDL,9H
JNAIS0_9_1
ADDDL,37H
JMPSAVE
IS0_9_1:ADDDL,30H
JMPSAVE
SAVE:MOV[DI],DL
ORAX,AX
JNZAGAIN3
RET
HTOBENDP
CODEENDS
ENDMAIN
22
DATASEGMENT
BUFDW
125AH,4357H,0F50H,0B43H,4AC4H,7454H,8B15H,0A2A4H,0F3CH,00F6
H
MAXDW?
MINDW?
DISPDB'MAX=','0000H'
DB0DH,0AH,'MIN=','0000H','$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
LEASI,BUF
MOVBX,[SI]
MOVDX,[SI]
DECSI
DECSI
MOVCX,11
NEXT:DECCX
JZOVER
INCSI
INCSI
MOVAX,[SI]
CMPAX,BX
JNGCHANGE1
CMPAX,DX
JGCHANGE2
JMPNEXT
CHANGE1:MOVBX,AX
JMPNEXT
CHANGE2:MOVDX,AX
JMPNEXT
MOV[MIN],BX
MOV[MAX],DX
OVER:LEADI,DISP+8
MOVAX,DX
CALLHTOB
LEADI,DISP+20
MOVAX,BX
CALLHTOB
LEADX,DISP
MOVAH,9
INT21H
MOVAH,4CH
INT21H
MAINENDP
HTOBPROCNEAR
MOVCX,16
INCDI
AGAIN3:MOVDX,0
DIVCX
DECDI
CMPDL,9H
JNAIS0_9_1
ADDDL,37H
JMPSAVE
IS0_9_1:ADDDL,30H
JMPSAVE
SAVE:MOV[DI],DL
ORAX,AX
JNZAGAIN3
RET
HTOBENDP
CODEENDS
ENDMAIN
23
DATASEGMENT
TEMPDB3
DB?
DB3DUP(?)
MAXDB?
MINDB?
BUFDB10DUP(?)
DISPDB'MAX=','00H'
DB0DH,0AH,'MIN=','00H','$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
LEADI,BUF
MOVSI,0
MOVCH,11
INPUT:DECCH
JZBIJIAO
LEADX,TEMP
MOVAH,0AH
INT21H
MOVBX,DX
MOVDL,2
MOVAL,[BX+2]
CMPAL,39H
JNAIS0_9
JMPISA_F
LOWNUM:MOVAH,AL
MOVAL,[BX+3]
CMPAL,39H
JNAIS0_9
JMPISA_F
IS0_9:SUBAL,30H
DECDL
JZLTOS
JMPLOWNUM
ISA_F:SUBAL,37H
DECDL
JZLTOS
JMPLOWNUM
LTOS:MOVCL,4
SHLAH,CL
ORAL,AH
MOV[DI],AL
INCDI
JMPINPUT
BIJIAO:MOVCX,10
LEASI,BUF
MOVBL,[SI]
MOVDI,[SI]
NEXT:DECCX
JZOVER
INCSI
MOVAL,[SI]
CMPAL,BL
JNACHANGE1
CMPAL,DL
JACHANGE2
JMPNEXT
CHANGE1:MOVBL,AL
JMPNEXT
CHANGE2:MOVDL,AL
JMPNEXT
MOV[MIN],BL
MOV[MAX],DL
OVER:LEADI,DISP+6
MOVAX,DX
CALLHTOB
LEADI,DISP+16
MOVAX,BX
CALLHTOB
LEADX,DISP
MOVAH,9
INT21H
MOVAH,4CH
INT21H
MAINENDP
HTOBPROCNEAR
MOVCX,16
INCDI
AGAIN3:MOVDX,0
DIVCX
DECDI
CMPDL,9H
JNAIS0_9_1
ADDDL,37H
JMPSAVE
IS0_9_1:ADDDL,30H
JMPSAVE
SAVE:MOV[DI],DL
ORAX,AX
JNZAGAIN3
RET
HTOBENDP
CODEENDS
ENDMAIN
DISP:LEADI,BUF+9
MOVAX,SI
CALLHTOB
LEADX,BUF
MOVAH,9
INT21H
MOVAH,4CH
INT21H
MAINENDP
HTOBPROCNEAR
MOVCX,16
INCDI
AGAIN3:MOVDX,0
DIVCX
DECDI
CMPDL,9H
JNAIS0_9_1
ADDDL,37H
JMPSAVE
IS0_9_1:ADDDL,30H
JMPSAVE
SAVE:MOV[DI],DL
ORAX,AX
JNZAGAIN3
RET
HTOBENDP
CODEENDS
ENDMAIN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 消費(fèi)者對(duì)家用美容保健電器滿意度調(diào)查-深度研究
- 自動(dòng)化運(yùn)維安全策略研究-深度研究
- 3D打印建筑歷史傳承-深度研究
- 全球治理創(chuàng)新-深度研究
- 豆類市場(chǎng)國際化趨勢(shì)分析-深度研究
- 清潔設(shè)備市場(chǎng)國際化戰(zhàn)略-深度研究
- 2025至2030年中國平紋網(wǎng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國仿石桌面數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年消防設(shè)施操作員之消防設(shè)備高級(jí)技能題庫練習(xí)試卷B卷附答案
- 質(zhì)檢員基礎(chǔ)知識(shí)培訓(xùn)課件
- 2025年安陽職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫及參考答案1套
- 11《認(rèn)識(shí)多媒體技術(shù)》教學(xué)設(shè)計(jì)、教材分析與教學(xué)反思2024年滇人版初中信息技術(shù)七年級(jí)下冊(cè)
- 2025年湖南環(huán)境生物職業(yè)技術(shù)學(xué)院單招職業(yè)技能測(cè)試題庫一套
- 2025年湖南安全技術(shù)職業(yè)學(xué)院單招職業(yè)技能測(cè)試題庫參考答案
- DB3202-T 1063-2024 質(zhì)量基礎(chǔ)設(shè)施“-站式”服務(wù)與建設(shè)規(guī)范
- 2025年廣東省深圳法院招聘書記員招聘144人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 百所名校高一數(shù)學(xué)試卷
- 第九章-或有事項(xiàng)教學(xué)教材
- 2024年江西青年職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫含答案解析
- 2025年度會(huì)計(jì)人員繼續(xù)教育會(huì)計(jì)法律法規(guī)答題活動(dòng)測(cè)試100題答案
- 電子書 -品牌設(shè)計(jì)法則
評(píng)論
0/150
提交評(píng)論