搜索
编程论坛
→
开发语言
→
『 汇编论坛 』
→ 【醒目】win32 汇编 关于输入字符串中字母出现次数统计!(谢谢了求帮忙!)
标题:
【醒目】win32 汇编 关于输入字符串中字母出现次数统计!(谢谢了求帮忙!) ...
只看楼主
Whiserp
等 级:
新手上路
帖 子:2
专家分:0
注 册:2012-11-24
结帖率:
0
楼主
已结贴
√
问题点数:20 回复次数:10
【醒目】win32 汇编 关于输入字符串中字母出现次数统计!(谢谢了求帮忙!)
要求是请用户输入一个字符串,然后统计并输出字符串中字母出现频率最高的字母。
前面定义都可以用C语言什么的,只要求中间统计部分用汇编。
所以我的问题是:
1、具体思路是什么才能简便快捷的完成这个程序,比如说数组一定是要用到的,那么如何用呢?用在哪里?
2、有哪些指令是要用到的?
3、只求指点,谢谢大神们了!老师不靠谱,教不清楚还是英文的T T帮个忙吧谢谢!
搜索更多相关主题的帖子:
字符串
C语言
如何
2012-11-24 20:42
wp231957
来 自:神界
等 级:
版主
威 望:
422
帖 子:13681
专家分:53296
注 册:2012-10-18
第
2
楼
得分:5
汇编里还有数组的概念吗
DO IT YOURSELF !
2012-11-24 23:17
Whiserp
等 级:
新手上路
帖 子:2
专家分:0
注 册:2012-11-24
第
3
楼
得分:0
回复 2楼 wp231957
可以在前面部分先用C语言定义一些数组..然后后面用汇编..那不用数组也可以,用其他的方法,求指点!
2012-11-25 03:06
wp231957
来 自:神界
等 级:
版主
威 望:
422
帖 子:13681
专家分:53296
注 册:2012-10-18
第
4
楼
得分:0
没看懂 你要用c+嵌入汇编方式 还是c+DLL方式
DO IT YOURSELF !
2012-11-25 07:30
Alar30
等 级:
贵宾
威 望:
10
帖 子:988
专家分:1627
注 册:2009-9-8
第
5
楼
得分:5
貌似汇编里没有数组一说吧。。。
2012-11-26 20:06
zhu224039
等 级:
贵宾
威 望:
17
帖 子:862
专家分:792
注 册:2012-7-29
第
6
楼
得分:5
在c程序里面声明个48个大小的static char a[] 汇编没有什么类型的说法引用的d到内存就好.对寄存器的操作是用的ax bx al ah的方式。 这个328的方式俺就帮不上了。手机上的。满不好弄的
push a
pop dx
LOP1:
mov ah ,01h
int 21h
CMP 0DAH,AL
JE ECD
cmp al ,'a'
jae yh
yh:
cmp al,'D'
JBE XXX
JMP LOP1
XXX:
SUB AL,'a'
XOR AH,AH
ADD BYTE PTR [dx+AX],1
JMP LOP1
ECD :
MOV AH 4CH
INT 21H
这个怎么找出出现次数最多的 汇编代码就是循环48 次 ax存放cx的值,bx初始值为0存放数组a的大值 满足[dx+cx]大于bx才将ax=cx 最后子母a的ascii码+ax就是出现次数最高的那个了
手机写代码很不方便,有心的话自己实现塞,另外一个很好的学习方法就是高级语言编写 反汇编后,你们懂的
[
本帖最后由 zhu224039 于 2012-11-27 05:48 编辑
]
我要成为嘿嘿的黑客,替天行道
2012-11-27 05:00
zhu224039
等 级:
贵宾
威 望:
17
帖 子:862
专家分:792
注 册:2012-7-29
第
7
楼
得分:0
0DAH 我是认为是回车就建的ascii码的
我要成为嘿嘿的黑客,替天行道
2012-11-27 05:04
zhu224039
等 级:
贵宾
威 望:
17
帖 子:862
专家分:792
注 册:2012-7-29
第
8
楼
得分:0
如果是在c里面输入的字符的话 32的代码就好写的很
直接将字符数组首地址PUSH POP 的方式取得f,那么写个
32码就好写的很了 把寄存器通通换成32的。那个dos中断就不要了
思路是一样的,这么辛苦 这分就都给我了把,手点的酸
[
本帖最后由 zhu224039 于 2012-11-27 05:45 编辑
]
我要成为嘿嘿的黑客,替天行道
2012-11-27 05:39
bobo2185355
等 级:
论坛游民
帖 子:81
专家分:43
注 册:2010-4-11
第
9
楼
得分:5
CSEG SEGMENT
BUFFER1 DW 8 DUP(?)
BUFFER2 DW 8 DUP(?)
START:....
这不就相当于一个二维数组吗?
2012-11-27 15:04
bobo2185355
等 级:
论坛游民
帖 子:81
专家分:43
注 册:2010-4-11
第
10
楼
得分:0
用SCAS进行扫描比较 ,先计算出每个字符出现的次数(其他方法也成啊,方法很多) 放进一个 NAME DB 26 DUP (0)当中,然后逐一比较 CMP,比较的结果用条件转移将大数的偏移地址存入累加器,这里存的是偏移地址,至于如何将偏移地址转换成你要输出的字符就简单了
区分大小写的 也只是多了区分大小写的部分而已
2012-11-27 16:34
11
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-388298-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.385662 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved