汇编语言统计输入中各字符出现的次数
- DATA SEGMENT
- BUFFER DB 100
- DB ?
- DB 100 DUP(?)
- CHARS DB 'INPUT:$'
- DATA ENDS
- CODE SEGMENT
- ASSUME CS:CODE,DS:DATA
- MAIN PROC FAR
- PUSH DS
- SUB AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- START: MOV DX,OFFSET CHARS
- MOV AH,9
- INT 21H
- MOV DX,OFFSET BUFFER
- MOV AH,0AH
- INT 21H
- MOV DL,0AH
- MOV AH,2
- INT 21H
- MOV DL,0DH
- MOV AH,2
- INT 21H
- MOV SI,OFFSET BUFFER
- INC SI
- MOV AL,[SI]
- INC SI
- MOV DL,[SI]
- MOV DH,[SI]
- MOV DI,SI
- MOV CL,AL
- MOV CH,0
- MOV BL,1
- MOV BH,0
- DEC CL
- GO1: INC SI
- CMP DL,[SI]
- JNE TO1
- INC BL
- TO1: LOOP GO1
- CALL OUTPUT
- MOV BL,1
- TO5: INC DI
- DEC AL
- CMP AL,1
- JE TO3
- CMP DH,[DI]
- JE TO5
- MOV DL,[DI]
- MOV SI,DI
- MOV CL,AL
- MOV CH,0
- DEC CL
- GO2: INC SI
- CMP [SI],DL
- JNE TO2
- INC BL
- MOV [SI],DH
- TO2: LOOP GO2
- CALL OUTPUT
- MOV BL,1
- JMP TO5
- TO3: CMP DH,[DI]
- JE TO4
- MOV DL,[DI]
- MOV BL,1
- CALL OUTPUT
- TO4: RET
- MAIN ENDP
- ;?-------------------------
- OUTPUT PROC
- PUSH AX
- PUSH CX
- PUSHF
- MOV AH,2
- INT 21H
- MOV DL,20H
- MOV AH,2
- INT 21H
- MOV AL,BL
- MOV AH,0
- MOV CL,10
- DIV CL
- ADD AH,30H
- ADD AL,30H
- MOV CH,AH
- MOV DL,AL
- MOV AH,2
- INT 21H
- MOV DL,CH
- MOV AH,2
- INT 21H
- MOV DL,0AH
- MOV AH,2
- INT 21H
- MOV DL,0DH
- MOV AH,2
- INT 21H
- POPF
- POP CX
- POP AX
- RET
- OUTPUT ENDP
- CODE ENDS
- END MAIN
- ;?-----------------
本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/709525
积跬步以致千里,积小流以成江海。
2016年5月之前的博文发布于51cto,链接地址:shamrock.blog.51cto.com
2016年5月之后博文发布与cnblogs上。
Github地址 https://github.com/umgsai
Keep moving~!!!
2016年5月之前的博文发布于51cto,链接地址:shamrock.blog.51cto.com
2016年5月之后博文发布与cnblogs上。
Github地址 https://github.com/umgsai
Keep moving~!!!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步