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毫秒