| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 756 人关注过本帖
标题:接受键盘输入字符然后在另一行输出英文字母个数
只看楼主 加入收藏
moonlight007
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-3-28
收藏
 问题点数:0 回复次数:0 
接受键盘输入字符然后在另一行输出英文字母个数
LEN         EQU     50
DSEG        SEGMENT
BUFF        DB  LEN
            DB  ?
            DB  LEN DUP (?)
MESS            DB      'X = $'
DSEG        ENDS
CSEG        SEGMENT
ASSUME   CS:CSEG , DS:DSEG
START:      MOV     AX,DSEG  
            MOV     DS,AX                ;送数据段段值
            MOV     DX,OFFSET BUFF    ;字符串偏移地址
            MOV     AH,0AH                ;键盘接受一个字符串
               INT     21H
               CALL     NEWLINE                    ;回车换行
            MOV     CL, BUFF+1                      ;得到字符串长度,设
置循环次数
            MOV     CH,0
                JCXZ    COK
                MOV     SI,OFFSET  BUFF+2
AGAIN:          MOV     AL,[SI]
                INC     SI
                CMP     AL,'a'
                JB      NEXT
                CMP     AL,'z'
                JA      NEXT
                INC     BL
NEXT:       LOOP    AGAIN
COK:            MOV     DX,OFFSET MESS
                CALL    DISPMESS
                MOV     AL,BL
                XOR     AH,AH
                CALL    DISPAL
                CALL    NEWLINE
                MOV     AX,4C00H
                INT     21H
DISPAL     PROC
           MOV    CX,3
           MOV    DL,10
DISP1:     DIV    DL
           XCHG   AH,AL
           ADD    AL,'0'
           PUSH   AX
           XCHG   AH,AL
           MOV    AH,0
           LOOP   DISP1
           MOV    CX,3
DISP2:     POP    DX
           CALL   ECHOCH
           LOOP   DISP2
           RET
DISPAL     ENDP
DISPMESS   PROC
           MOV    AH,9
           INT    21H
           RET
DISPMESS   ENDP
ECHOCH     PROC
           MOV     AH,2
           INT     21H
           RET
ECHOCH     ENDP
NEWLINE     PROC                        ;回车换行子
程序
            PUSH    AX
            PUSH     DX
            MOV     DL,0DH
            MOV    AH,2
            INT     21H
            MOV     DL,0AH
            MOV    AH,2
            INT    21H
            POP    DX
            POP     AX
            RET
NEWLINE     ENDP
CSEG        ENDS
END         START
运行之后输入的一段字符时计算不出英文字符个数,哪个地方错了呢?
搜索更多相关主题的帖子: 字母 字符 英文 键盘 输出 
2009-11-03 21:59
快速回复:接受键盘输入字符然后在另一行输出英文字母个数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046076 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved