首页
社区
课程
招聘
[求助]汇编里如何把一个字符串内容放到寄存器里
发表于: 2006-2-24 18:00 7762

[求助]汇编里如何把一个字符串内容放到寄存器里

2006-2-24 18:00
7762
如我有一个字符串
szStr db "1234CDEF", 0
我想让eax的值为1234cdef,说白了就是字符串转换为数字
请问有相应指令吗?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
指令没有, masm32提供的库中有函数可以完成这个功能
2006-2-24 19:37
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
你说的  1234cdef  是字符串还是双字

如果是双字的话直接用 dd 定义就行

如果是字符串的话 '1234cdef' 编译过以后每个字符就占一个字节
eax是双字==四个字节

不过eax可以做为指向'1234cdef'的指针

另外,这们兄弟好像,还弄不大清楚,在内存里的数据没有字符串、数值分,就看你拿它当作什么类型处理,不过通常所说的字符串都是以'\0'结尾罢了。
2006-2-24 20:02
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
4
我的意思是有一个字符串为1234cdef
我想让一个寄存器的值为1234cdef,并不是指向那个字符串
我的方法只是把字符串从前循环到尾,计算值

在我的意思下,内存中字符串和数值就有分别了
数值1存储为01
字符串1存储为31
2006-2-24 23:29
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
5
使用atodw函数:

include \masm32\m32lib\masm32.inc
includelib \masm32\m32lib\masm32.lib

....
invoke atodw, OFFSET stringnum
2006-2-25 00:32
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
越看反而糊涂了,第一贴的问题可以使用atodw
2006-2-25 02:04
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
7
谢谢thebutterfly和aketou
2006-2-25 09:28
0
雪    币: 214
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
晕~~
还是看不懂什么意思,楼主想干什么.

就是想把 类似非压缩BCD数的 16进制数的 字符串转换成它所表示的数值?

把字串"1234567890abcdef"转换成数值的0x1234567890abcdef?
2006-2-26 11:39
0
游客
登录 | 注册 方可回帖
返回
//