MSE_express 版 (精华区)

发信人: sdrizzle (Gonna Rain), 信区: MSE_express
标  题: 考完计算机硬件啦!!!
发信站: 听涛站 (2001年11月10日17:47:40 星期六), 站内信件

第一题:从键盘输入一串字符,统计其中大小写及数字字符的个数,并显示出来。
第二题:密码校验程序,连续三次错误给出提示信息,输入正确也给出提示。(改错题)
其中第一题可根据0-9、A-Z、a-z的ASCII码大小顺序逐次比较(程序片断见后)
第二题的主要错误有:
没有assume,end后没有入口地址,字符串显示时,要加$
单字符输入置入缓冲区时,缓冲器地址DI要累加,
密码校验次数累加器CX与密码个数累加器有冲突(可用栈来解决)
若密码正确,跳转的逻辑有错。。。(其他的记不得了)
第一的16进制显示子程,讲义上有,就不贴了,前一部分参考程序如下:
data segment
        info db 'Input some characters:',10,13,'$'
        brk db 10,13,'$'
        num db ?
        cha db ?
        noc db ?
        oth db ?;累加器
data ends
code segment
        assume cs:code,ds:data
start:
        mov ax,data
        mov ds,ax
        lea dx,info
        mov ah,9
        int 21h;显示提示信息
looop:  mov ah,1
        int 21h
        cmp al,'0'
        jb other;小于0
        cmp al,'z';大于z
        ja other;判断是否为特殊字符
        cmp al,'9'
        jb number;是否为数字
        cmp al,'Z'
        jb chara;是否为大写字符
        jmp nocha;剩下的为小写字符
number: inc [num]
 jmp exit
chara:  inc [cha]
        jmp exit
nocha:  inc [noc]
        jmp exit
other:  inc [oth];累加器计数
exit:
 cmp al,0dh
        jnz looop;若为回车,结束
mov ah,4ch;返回DOS
        int 21h
code ends
end start


--
What is love ?
Love means that you don't have to say "sorry",ever.
※ 来源:·听涛站 tingtao.dhs.org·[FROM: 匿名天使的家] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:0.788毫秒