用汇编语言编写程序 :统计一个字符串中某个字母的个数。 求高手啊!!急急急!!!!!!

一天内给我 谢谢诶啊

;---------------------------------------------------
DATA SEGMENT

PARS DB 100 ;准备接收100个字符.
NNN DB ? ;用于存放实际输入的个数.
III DB 100 DUP(?) ;100字节的空间.
CHR DB 0
C_N DB 0

MES_I DB 13, 10, 'Input STR : $ ' ;用于提示.
MES_N DB 13, 10, 'Input CAHR : $ ' ;用于提示.
MES_O DB 13, 10, 'THE num IS : $ ' ;用于提示.

DATA ENDS
;---------------------------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX

MOV DX, OFFSET MES_I
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H
MOV DX, OFFSET PARS
MOV AH, 10 ;10号功能调用,接收键盘输入.
INT 21H
MOV DX, OFFSET MES_N
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H
MOV AH, 1
INT 21H
MOV CHR, AL
;---------------------------------------------------
MOV CL, NNN ;收到字符的个数.
MOV CH, 0
CMP CX, 0
JNZ DO_IT
JMP EXIT
DO_IT:
LEA SI, III ;键入字符的起始地址.
;----------------------------下面开始循环统计.
AGAIN:
MOV AL, [SI] ;取来一个.
CMP AL, CHR
JNZ NEXT
INC C_N
NEXT:
INC SI
LOOP AGAIN
;----------------------------
MOV DX, OFFSET MES_O
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H
MOV AL, C_N
MOV AH, 0
CALL PRINTAX
;----------------------------显示结束.
EXIT:
MOV AH, 4CH
INT 21H
;------------------------------
PRINTAX PROC ;输出AX中的无符号整数.
MOV BX, 10
OR AX, AX
JZ _0_
LOOP_P:
XOR DX, DX
DIV BX
MOV CX, AX
OR CX, DX
JZ _E_
PUSH DX
CALL LOOP_P
POP DX
ADD DL, '0' ;变成ASCII码.
JMP _1_
_0_: MOV DL, '0' ;是0则直接输出.
_1_: CALL PUTC
_E_: RET
PRINTAX ENDP
;------------------------------
PUTC PROC
MOV AH, 2
INT 21H
RET
PUTC ENDP
;------------------------------
CODE ENDS
END START
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-02
int XXXXXX(char *s,char *A)
_XXXXXX PROC NEAR
PUSH BP
MOV BP,SP
PUSH ES
MOV AX,DS
MOV ES,AX
MOV DI,[BP+4] ;取字符串指针
CLD
XOR DX,DX
XOR CX,CX
MOV AL,[BP+6];取比较字符
@1:
SCASB ;进行比较
SETZ CL ;如果相等则设置CL为1
ADD DX,CX
CMP BYTE PTR ES:[DI],0;测试字符串是否到了末尾 (\0)
JNZ SHORT @1 ;如果不是则继续
MOV AX,DX ;由ax返回结果 C语言中的结果一般都是保存在AX中
POP ES
MOV SP,BP ;恢复堆栈
POP BP
RET
_XXXXXX ENDP追问

你他妈的真无聊 回答问题谁都可以 你麻痹的回答了别人问题别人就得采纳你??没用的回答我采纳你??你麻痹的你以为你爹我的分数是天上掉的??白白给你??你先看看你自己的回答可有用??知道是你家开的?你回答别人就得一定采纳你??孙子 ,还敢发私信骂我, 有种在这光明正大的告诉大家你回答了我的提问,还强制要求我采纳你。孙子 真你麻痹的阴险

追答

我是3年后才看到你的回复!我怎么看我的代码也没错啊,如果你要32位汇编代码,说下我给你写,为何骂我?

本回答被提问者采纳
相似回答