注册 登录
编程论坛 汇编论坛

小弟初学汇编,请各位帮帮忙!

arren 发布于 2005-02-17 01:42, 890 次点击
我有个作业,计算输入字符串中每个字符出现次数...请哪位大侠贴出程序啊...

感激不尽!!
1 回复
#2
cc1232005-02-17 20:43

给你一个: ;********************* 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

1