问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用8086汇编语言编写程序键盘输入一段字符以#结束,统计其中数字...

发布网友 发布时间:2024-04-09 11:44

我来回答

1个回答

热心网友 时间:2024-04-11 10:08

stack segment stack
byte 256 dup(0)
stack ends

data segment
C1 dw 0 ;空格数
C2 dw 0 ;数字数
C3 dw 0 ;字母数
C4 dw 0 ;其它字符数
BUFF db 64, 0, 64 dup(?) ;接收输入缓冲区,BUFF[0]存储缓冲区大小,BUFF[1]存储实际输入数,BUFF[2]开始为输入的数据
SHEX DB '0123456789ABCDEF$'
MSG1 db 13,10,'space: $'
MSG2 db 13,10,'number: $'
MSG3 db 13,10,'alpha: $'
MSG4 db 13,10,'other: $'
MSG5 db 'input your data, end to input #', 13, 10, '$'
data ends

code segment
assume cs:code,ss:stack,ds:data
START:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax

call GetInputData;

call CountInputData;

;输出空格数
mov dx, offset MSG1
mov ax, C1
call PrintLen

;输出数字数
mov dx, offset MSG2
mov ax, C2
call PrintLen

;输出字母数
mov dx, offset MSG3
mov ax, C3
call PrintLen

;输出其他数
mov dx, offset MSG4
mov ax, C4
call PrintLen
PROCEXIT:
; 程序退出
mov ax,4c00h
int 21h

;打印出长度,长度保存在AX里, DX里存储提示信息地址
PrintLen proc near
push ax
mov ah,9h
int 21h
pop ax

mov cx,4
PRINTLOOP:
rol ax,1
rol ax,1
rol ax,1
rol ax,1
push ax
mov dl,al
and dl,0FH
mov bx, offset SHEX
add bl,dl
mov dl, byte ptr [bx]
mov ah,2
int 21h
pop ax
loop PRINTLOOP
ret
PrintLen endp

CountInputData proc near
mov ch,0
mov cl, byte ptr[BUFF+1]
mov si, offset BUFF+2
MYLOOP:
mov al, [si]
inc si

cmp al,20h ;' '空格
je CCOUNT1
cmp al, '0' ;'0'
jl CCOUNT4
cmp al, '9' ;'9'
jle CCOUNT2
cmp al, 'A' ;'A'
jl CCOUNT4
cmp al, 'Z' ;'Z'
jle CCOUNT3
cmp al, 'a' ;'a'
jl CCOUNT4
cmp al, 'z' ;'z'
jle CCOUNT3
CCOUNT4:
inc C4
jmp NEXTLOOP
; 空格
CCOUNT1:
inc C1
jmp NEXTLOOP
; 数字
CCOUNT2:
inc C2
jmp NEXTLOOP
; 字母
CCOUNT3:
inc C3
jmp NEXTLOOP
NEXTLOOP:
loop MYLOOP
ret
CountInputData endp

;获取输出数据,输入数据保存在BUFF里,个数
GetInputData proc near
mov dx, offset MSG5
mov ah, 9h
int 21h

mov ch,0
mov cl,BUFF
lea bx,BUFF+2;
INPUTLOOP:
mov ah,1
int 21h
cmp al, '#'
jz EXITINPUT
cmp al, 13 ;跳过回车符
jz INPUTLOOP
cmp al, 10 ;跳过换行符
jz INPUTLOOP
inc byte ptr[BUFF+1]
mov byte ptr[bx], al
inc bx
loop INPUTLOOP
EXITINPUT:
ret
GetInputData endp

code ends

end START
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...结构的施工分包给其他单位那么是不是EPC总承包就不能分包 Win11玩不了地平线4如何解决_Win11玩不了地平线4怎么办 Win11玩不了地平线4如何解决_Win11玩不了地平线4怎么解决 地平线5警告显卡内存过低怎么办 极限竞速地平线5闪退怎么解决 极限竞速地平线5闪退解决方法 怎样册除手机屏幕上(精品游戏)图标 烧结普通砖有哪些 烧结普通砖都有哪些 ...4年后的年龄与弟弟3年前的年龄和是35岁。今年哥与弟各几岁??_百度... ...等于弟弟7年后的年龄,哥哥4年后与弟弟3年前的年龄的和是35岁。哥哥... 北京公园都会是哪个开发商? 司法取证阶段是什么意思? 查处统计违法案件时,最关键的工作环节是( )。 高速取证是什么意思? 福州大利嘉城附近有建设银行吗?远不远啊,急 请问福州大利嘉城附近有货运站吗? 献县公安局出入境办证大厅上班时间 ...过年回沧州。 沧州市公安局出入境管理处什么时候放假啊 济南瓷砖哪些牌子比较好? 未成年女孩可以打耳丁吗 12岁女孩耳鸣并有时听不到,很烦躁,怎么办,急! 如果被6岁的女儿怒删耳光怎么办? 电梯限速器可不可以随意拆卸? 明日之后商场废弃的电梯缆绳在哪任务? 急~~~高分悬赏!! 求杭州旅馆 7月份招聘会 喝完啤酒胃痛可以喝胃痛宁片吗 北京版小学语文第七册(四年级上)生字表,能帮忙拍个照片吗?孩子的暑假... 我想查一下北京小学生办公交卡要什么样的照片 谁有或知道哪有武汉北京路小学的照片?? 天长到苏州几点的车谢谢了,大神帮忙啊 海南有哪些原木系装修风格的餐厅? 谁有2013年人教版八年级上册英语第五页2b的课文翻译啊! 小学语文六年级练习中的几个问题 石台县七都镇农友农业生产发展专业合作社怎么样? 朋友喝酒高兴的句子 李国安的介绍 圣诞花鲜切养多久 英语几分之几的问题 成语,大相什么 山清水秀是描写春天的吗 三十晚上祖坟放烟花烧到头发好不好 我头发烫的烟花,现在有点焦,我想先洗直在重新烫行吗 盐城自来水抄表员工资 ...开始考研去香港。我是商科学生。请问目标哪所大学的什么专业比较好... 打水井用的钻杆,用什么材质 嘉兴beats耳机哪有卖? ...要在A1:A1500中,如果单元格值为0,则不参与排序,公式该怎么写?_百 ... 政治学原理的核心问题在于如何控制和制约政治权利 沈阳哪里有卖玉米蛇,什么价钱。。 厕所由于铺地砖把排污口管子留短了怎么办