首页
课程
问答
CTF
社区
招聘
看雪峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
看雪峰会
看雪商城
证书查询
社区
付费问答
发新帖
0
0
[旧帖]
[求助]求助一汇编问题
0.00雪花
发表于: 2010-7-17 21:00
1349
[旧帖]
[求助]求助一汇编问题
0.00雪花
dragonlove
2010-7-17 21:00
1349
用键盘输入任意一字符串,分类统计该字符串中每个数字和字母的出现次数。
解:
.MODEL SMALL
.DATA
N = 80
Buff
DB N, ?, N DUP(?)
Num
DW 36 DUP(0) ;每个字用于存放'0'~'9','A'~'Z'出现的个数
.CODE
.STARTUP
LEA
DX, Buff
MOV
AH, 0AH
INT
21H ;输入一个字符串
XOR
CH, CH
MOV
CL, Buff+1 ;CX=输入字符串的个数
LEA
SI, Buff+2
XOR
BX, BX
.REPEAT
MOV
BL, [SI] ;考虑下面的思考题
INC
SI
.IF BL>='0' && BL<='9'
;分类统计'0'~'9'中的每个数字的个数
SUB
BL, '0'
ADD
BX, BX
INC
Num[BX]
.CONTINUE
.ENDIF
.IF BL>='a' && BL<='z'
SUB
BL, 20H ;小写变大写
.ENDIF
.IF BL>='A' && BL<='Z'
;分类统计'A'~'Z'中的每个字母的个数
SUB
BL, 'A'-10
ADD
BX, BX
INC
Num[BX]
.ENDIF
.UNTILCXZ
.EXIT 0
END
思考题:
在本例中,用指令“MOV BL, [SI]”来把当前检测的字符存入BL,当然,我们也可以用AL来代替BL,有关指令要作相应的改动,但这样做,会更方便吗?希望读者能知道:为什么要用BL,而不用AL?
另外,我不理解ADD BX,BX这句,是如何把数字、字母的个数保存到对应数组中的?
谢谢!
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
最新回复
(
4
)
刘光华
雪 币:
35
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
6
回帖
33
粉丝
0
关注
私信
刘光华
2
楼
首先 AX累加器,BX是基址寄存器,但是都是通用寄存器,用哪个没有绝对的区别,ADD BX,BX BX是指向buff数组的,通过循环,将结果放到BX,然后放到buff里面,其实我汇编也不怎么行,不过我打算以后好好学汇编。以后也要帮我解决些问题啊
2010-7-18 08:40
0
dragonlove
雪 币:
30
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
1
回帖
2
粉丝
0
关注
私信
dragonlove
3
楼
我不明白ADD BX,BX为什么这样做就可以对对应数组赋值?请指点一下!以后咱们共同学习吖。
2010-7-19 12:22
0
矛盾vampire
雪 币:
4
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
2
回帖
17
粉丝
0
关注
私信
矛盾vampire
4
楼
不懂得路过 帮顶
2010-7-19 12:47
0
强盗男爵
雪 币:
41
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
11
回帖
19
粉丝
0
关注
私信
强盗男爵
5
楼
ADD BX BX是因为NUM数组定义的是字
2010-7-19 18:48
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
dragonlove
1
发帖
2
回帖
10
RANK
关注
私信
他的文章
[求助]求助一汇编问题
1350
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
返回
顶部