汇编语言实验题:分类统计字符个数,出现问题,急需解决!!!

Niko_wq 2011-06-19 05:54:05
;这是我写的代码,个人认为没有错误,但出来的结果是错的!希望高手能帮我解决
;*********************************************************************
data segment
string1 label byte
max1 db 80
act1 db ?
str1 db 80 dup(?)
numbers db ?
letters db ?
others db ?
mess1 db 'The numbers of number:','$'
mess2 db 'The numbers of letter:','$'
mess3 db 'The numbers of others:','$'
mess4 db 13,10,'$'
mess5 db 'Enter Sentence:',13,10,'$'
data ends
;*********************************************************************
code segment
main proc far
assume cs:code,ds:data,es:data

start: push ds
sub ax,ax
push ax

mov ax,data
mov ds,ax
mov es,ax

mov numbers,0
mov letters,0
mov others,0
mov ch,act1

lea dx,mess5
mov ah,09h
int 21h
lea dx,string1
mov ah,0ah
int 21h
lea dx,mess4
mov ah,09h
int 21h

lea si,str1
p5: mov dx,[si]
cmp dx,'0'
jl p1 ;dx<'0'
cmp dx,'9'
jle p2 ;'0'<=dx<='9'
cmp dx,'A'
jl p1 ;'9'<dx<'A'
cmp dx,'Z'
jle p3 ;'A'<=dx<='Z'
cmp dx,'a'
jl p1 ;'Z'<dx<'a'
cmp dx,'z'
jle p3 ;'a'<=dx<='z'
jmp p1 ;dx>'z'
p1: inc others ;bh中存放其他字符的个数
jmp p4
p2: inc numbers ;al中存放数字的个数
jmp p4
p3: inc letters ;bl中存放字母的个数
p4: inc si
dec ch
cmp ch,0
jnz p5
mov cl,4

p8: lea dx,mess1
mov ah,09h
int 21h
mov ch,2
jmp p7
p9: lea dx,mess2
mov ah,09h
int 21h
mov ch,2
jmp p12
p10: lea dx,mess3
mov ah,09h
int 21h
mov ch,2
jmp p13

p7: rol numbers,cl
mov bh,numbers
and bh,0fh
jmp p14
p12: rol letters,cl
mov bh,letters
and bh,0fh
jmp p16
p13: rol others,cl
mov bh,others
and bh,0fh
jmp p18

p14: add bh,30h
cmp bh,3ah
jb p15
add bh,07h
p15: mov dl,bh
mov ah,2
int 21h
dec ch
cmp ch,0
jnz p7
lea dx,mess4
mov ah,09h
int 21h
jmp p9

p16: add bh,30h
cmp bh,3ah
jb p17
add bh,07h
p17: mov dl,bh
mov ah,2
int 21h
dec ch
cmp ch,0
jnz p12
lea dx,mess4
mov ah,09h
int 21h
jmp p10

p18: add bh,30h
cmp bh,3ah
jb p19
add bh,07h
p19: mov dl,bh
mov ah,2
int 21h
dec ch
cmp ch,0
jnz p13
lea dx,mess4
mov ah,09h
int 21h
jmp exit
exit: ret
main endp
code ends
end start

此程序在编译和连接时都没有错误,只是结果有问题
运行结果如下:
Enter Sentence:
we are 123
按回车键出现如下结果:
The numbers of number:00
The numbers of letter:34
The numbers of others:FD
...全文
331 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
masmaster 2011-06-19
  • 打赏
  • 举报
回复
;
;This Program Compiled Sucess by Masm 6.15
;
assume cs:code,ds:data
data segment
msg db 'Enter a string:$'
buffer db 80,0,80 dup (0)
_number db 0
_cap db 0
_low db 0
_other db 0
nummsg db 'numbers of digit:$'
capmsg db 'numbers of cap-letter:$'
lowmsg db 'numbers of low-letter:$'
othmsg db 'numbers of other-char:$'
data ends
code segment
start:
mov ax,data
mov ds,ax

mov dx,offset msg
mov ah,9
int 21h

mov dx,offset buffer
mov ah,10
int 21h

call crlf

mov bx,offset buffer+2
mov cl,buffer+1
s:
mov al,[bx]
cmp al,'0'
jae sz
jmp oth
sz:
cmp al,'9'
jbe num
jmp zm
num:
inc _number
jmp jx
zm:
cmp al,'A'
jae zm0
jmp oth
zm0:
cmp al,'Z'
jbe zm1
jmp zm2
zm1:
inc _cap
jmp jx
zm2:
cmp al,'a'
jae zm3
jmp oth
zm3:
cmp al,'z'
jbe zm4
oth:
inc _other
jmp jx
zm4:
inc _low
jx:
inc bx
loop s


mov dx,offset nummsg
mov ah,9
int 21h

mov dl,_number
call disp

call crlf

mov dx,offset capmsg
mov ah,9
int 21h

mov dl,_cap
call disp

call crlf

mov dx,offset lowmsg
mov ah,9
int 21h

mov dl,_low
call disp

call crlf

mov dx,offset othmsg
mov ah,9
int 21h

mov dl,_other
call disp

mov ah,4ch
int 21h
;crlf
crlf proc uses ax dx
mov ah,2
mov dl,13
int 21h
mov dl,10
int 21h
ret
crlf endp
;
;input:dx
disp proc uses dx
mov ax,dx
xor dx,dx
mov bx,10
mov cx,0
d2: cmp ax,10
jb ok2
div bx
add dl,30h
push dx
xor dx,dx
inc cx
jmp d2
ok2: add al,30h
push ax
inc cx
d3: pop dx
mov ah,2
int 21h
loop d3
ret
disp endp
;
code ends
end start
摘 要 针对高校教师教学业绩管理流程复杂、数据填报不规范、多级审核效率低、统计分析滞后等问题,本文设计并实现一套基于SpringBoot+Vue前后端分离架构的高校教师教学业绩综合管理系统。系统后端以SpringBoot处理业务逻辑与接口开发,前端用Vue构建交互界面,MySQL存储数据,MD5加密保障账号安全,具备低耦合、易扩展、易维护特性。 系统按权限划分为教师、学院管理员、学校管理员三级角色,构建闭环式业绩管理体系。教师可完成信息维护、业绩录入、成果申报、审核跟踪、档案导出、智能咨询与社区互动;学院管理员负责教师管理、业绩初审、数据汇总、通知发布与修正申请;学校管理员承担权限分配、数据维护、业绩终审、统计分析、公告发布与日志审计。 系统实现业绩填报、初审、终审、统计归档全流程线上化,支持批量导入、敏感词过滤、数据可视化、7×24小时AI咨询等功能,规范管理流程、减少统计误差、提升审核效率。测试表明,系统满足高校教学业绩精细化、规范化、信息化管理需求,为教师考核、绩效评定、教学评估提供数据支撑,提升高校教学管理智能化水平。 关键词: SpringBoot;Vue;教学业绩管理;三级权限;前后端分离
内容概要:本文围绕“基于雅可比伪逆迭代的双臂协同轨迹规划与跟踪误差收敛性研究”展开,通过Matlab代码实现双机械臂系统的协同运动控制与轨迹跟踪。研究采用雅可比伪逆法求解冗余机械臂的逆运动学问题,实现末端执行器在笛卡尔空间中的精确轨迹规划,并引入迭代优化机制提升双臂协同作业的精度与稳定性。重点分析了轨迹跟踪过程中误差的收敛特性,验证了所提控制算法在多自由度强耦合系统中的有效性和鲁棒性,适用于复杂环境下需要高精度配合的机器人协同操作任务。该研究属于科研仿真复现类工作,融合了机器人运动学理论、数值计算方法与控制算法设计,为多机械臂系统提供了可行的轨迹规划与控制策略参考。; 适合人群:具备扎实的机器人学基础、自动控制理论知识以及良好Matlab编程能力的科研人员或研究生,尤其适合从事多机械臂协同控制、运动规划、逆运动学求解及误差分析等方向的研究者。; 使用场景及目标:①用于多机械臂系统的协同轨迹规划与运动控制算法研究;②深入理解基于雅可比伪逆法的逆运动学求解原理及其在冗余机构中的应用;③分析轨迹跟踪误差的收敛行为,评估控制策略的稳定性与精度;④作为高质量论文复现资源,支撑相关课题的仿真验证、算法对比与改进创新。; 阅读建议:建议结合Matlab代码与机器人运动学经典理论同步学习,重点关注雅可比矩阵的构建、伪逆运算的实现方式、误差反馈机制的设计以及迭代过程中的数值稳定性处理,同时可进一步拓展至非线性优化、避免奇异位形及实时控制策略的改进研究。

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧