- DATASEGMENT
- BUFFERDB100
- DB?
- DB100DUP(?)
- CHARSDB'INPUT:$'
- DATAENDS
- CODESEGMENT
- ASSUMECS:CODE,DS:DATA
- MAINPROCFAR
- PUSHDS
- SUBAX,AX
- PUSHAX
- MOVAX,DATA
- MOVDS,AX
- START:MOVDX,OFFSETCHARS
- MOVAH,9
- INT21H
- MOVDX,OFFSETBUFFER
- MOVAH,0AH
- INT21H
- MOVDL,0AH
- MOVAH,2
- INT21H
- MOVDL,0DH
- MOVAH,2
- INT21H
- MOVSI,OFFSETBUFFER
- INCSI
- MOVAL,[SI]
- INCSI
- MOVDL,[SI]
- MOVDH,[SI]
- MOVDI,SI
- MOVCL,AL
- MOVCH,0
- MOVBL,1
- MOVBH,0
- DECCL
- GO1:INCSI
- CMPDL,[SI]
- JNETO1
- INCBL
- TO1:LOOPGO1
- CALLOUTPUT
- MOVBL,1
- TO5:INCDI
- DECAL
- CMPAL,1
- JETO3
- CMPDH,[DI]
- JETO5
- MOVDL,[DI]
- MOVSI,DI
- MOVCL,AL
- MOVCH,0
- DECCL
- GO2:INCSI
- CMP[SI],DL
- JNETO2
- INCBL
- MOV[SI],DH
- TO2:LOOPGO2
- CALLOUTPUT
- MOVBL,1
- JMPTO5
- TO3:CMPDH,[DI]
- JETO4
- MOVDL,[DI]
- MOVBL,1
- CALLOUTPUT
- TO4:RET
- MAINENDP
- ;?-------------------------
- OUTPUTPROC
- PUSHAX
- PUSHCX
- PUSHF
- MOVAH,2
- INT21H
- MOVDL,20H
- MOVAH,2
- INT21H
- MOVAL,BL
- MOVAH,0
- MOVCL,10
- DIVCL
- ADDAH,30H
- ADDAL,30H
- MOVCH,AH
- MOVDL,AL
- MOVAH,2
- INT21H
- MOVDL,CH
- MOVAH,2
- INT21H
- MOVDL,0AH
- MOVAH,2
- INT21H
- MOVDL,0DH
- MOVAH,2
- INT21H
- POPF
- POPCX
- POPAX
- RET
- OUTPUTENDP
- CODEENDS
- ENDMAIN
- ;?-----------------
本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/709525