




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化疗护理中的安全风险控制
- 高龄骨折患者康复护理查房
- 安徽省池州市2026届中考语文对点突破模拟试卷含解析
- 小学一年级组体育锻炼计划
- 2025年汽车融资租赁项目发展计划
- 慢性白血病急性加重护理措施
- 2025年超声多普勒胎儿监护仪项目合作计划书
- 新生儿头皮监测性损伤的护理措施
- 2025年手术室护理质量与安全管理委员会工作计划
- 2025年安全、消防用金属制品项目发展计划
- 生活饮用水检验规范(2001)
- RCPMIS信息报送规范
- 2023中国华能《安规》逢考必过题目答案
- 感恩的心ppt优秀课件
- 2023年盐山县卫生健康系统事业单位招聘笔试题库及答案解析
- 养老医疗护理员培训培训课件
- DB3301T 0235-2018 城市公共厕所设置标准
- 运输风险防控记录表
- 三类汽车维修管理制度doc-收费标准
- 第四次全国经济普查先进集体事迹材料
- 博世力士乐运动控制器常用编程指令手册
评论
0/150
提交评论