网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月13日
漏签
0
天
汇编吧
关注:
45,341
贴子:
164,004
看贴
图片
吧主推荐
游戏
6
回复贴,共
1
页
<<返回汇编吧
>0< 加载中...
求助求助求助
只看楼主
收藏
回复
弗罗里达杰克
加载执行
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这是为什么,不能输出结果也不能中断程序,只能右上角关闭
ZandraWoo
数据结构
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
代码本身问题, debug追踪看哪儿出错。
弗罗里达杰克
加载执行
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
.model small
.stack
.data
inputMsg db "Enter a string: $"
inputStr db 100, 0
digits db 0
letters db 0
others db 0
.code
start:
mov ax, @data
mov ds, ax
mov ah, 09h
lea dx, inputMsg
int 21h
mov ah, 0ah
lea dx, inputStr
int 21h
mov si, offset inputStr
nextChar:
mov al, [si]
cmp al, 0
je countDone
cmp al, '0'
jb notDigit
cmp al, '9'
jbe isDigit
notDigit:
cmp al, 'a'
jb otherChar
cmp al, 'z'
jbe isLetter
otherChar:
inc others
jmp nextChar
isDigit:
inc digits
jmp nextChar
isLetter:
inc letters
jmp nextChar
countDone:
mov ah, 09h
lea dx, crlf
int 21h
mov ah, 09h
lea dx, digitsMsg
int 21h
mov dl, digits
add dl, '0'
mov ah, 02h
int 21h
mov ah, 09h
lea dx, lettersMsg
int 21h
mov dl, letters
add dl, '0'
mov ah, 02h
int 21h
mov ah, 09h
lea dx, othersMsg
int 21h
mov dl, others
add dl, '0'
mov ah, 02h
int 21h
mov ah, 4Ch
int 21h
.data
crlf db 0Dh, 0Ah, '$'
digitsMsg db "Digits: $"
lettersMsg db "Letters: $"
othersMsg db "Other characters: $"
end start
ZandraWoo
数据结构
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
错的都是原则和基本错误 ,用AI写代码还要侦错还不如自己写.....
ZandraWoo
数据结构
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
程式本身的限制是:输入的数字,字母和其他字符都不能超过9个,否则错误.
修改如下.....
1.
inputStr db 100, 0
改为
inputStr db 100, 0 , 100 dup (?)
2.
mov si, offset inputStr
nextChar:
mov al, [si]
cmp al, 0
je countDone
cmp al, '0'
jb notDigit
cmp al, '9'
jbe isDigit
notDigit:
cmp al, 'a'
jb otherChar
cmp al, 'z'
jbe isLetter
上一段改为
mov si, offset inputStr + 2 ;实际输入地址
mov al, [si-1];取实际输入数
cmp al, 0;有否输入
jz exit;没有,离开
nextChar:
lodsb;取字符
cmp al,0dh;是否回车
jz countDone
cmp al, '0'
jb notDigit
cmp al, '9'
jbe isDigit
notDigit:
and al,5dh;转大写
cmp al, 'A'
jb otherChar
cmp al, 'Z'
jbe isLetter
3.
mov ah, 4Ch
int 21h
.data
crlf db 0Dh, 0Ah, '$'
digitsMsg db "Digits: $"
lettersMsg db "Letters: $"
othersMsg db "Other characters: $"
end start
改为
exit:;--加label
mov ah, 4Ch
int 21h
.data
crlf db 0Dh, 0Ah, '$'
digitsMsg db "Digits: $"
lettersMsg db 20h,"Letters: $";---加空白
othersMsg db 20h," Other characters: $";---加空白
end start
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示