首页
社区
课程
招聘
[求助]wsprintf函数?
发表于: 2012-11-22 19:03 9286

[求助]wsprintf函数?

2012-11-22 19:03
9286
如下:
szFormat        db        '%X,%X,%X,%X,%X,%X',0
LOCAL        @szB[18]:byte
invoke        wsprintf,addr @szBuffer,addr szFormat,@szB[0],@szB[1],@szB[2],@szB[3],@szB[4],@szB[5]
如上代码,本来打算将数组@szB的18个元素以16进制输出的(每个数据均是一个字节),但是在调用了wsprintf函数之后,一直出错,如果把LOCAL        @szB[18]:byte改为LOCAL        @szB[18]:dword,那么输出将一直出现比较乱的码值,比如输出是CB9B7B5,480CB9B7,23480CB9,2C23480C,492C2348,79492C23,请问是为什么?
在win32汇编下怎样把一字节数组元素以16进制输出,请问?

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 5
活跃值: (229)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
XOR EBX,EBX            
invoke wsprintf,addr szBuffer,addr @szFormat,addr @szB[ebx],addr @szB[ebx+1],addr @szB[ebx+2],…
这样试试呢?手机打的,你自己补全
2012-11-22 20:23
0
雪    币: 5
活跃值: (229)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
说错了。参数需要是dword型,局部变量没有初始化
2012-11-22 20:35
0
雪    币: 249
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
个人表示试了下不行:
XOR EBX,EBX            
invoke wsprintf,addr szBuffer,addr @szFormat,addr @szB[ebx],addr @szB[ebx+1],addr @szB[ebx+2],…
而且感觉addr @szB[ebx]必然输出的是@szB的某个元素的地址,以十六进制方式输出。
2012-11-22 20:39
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
wsprintf不是双字节吗
2012-11-22 21:13
0
雪    币: 5
活跃值: (229)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
参数应该是@szB[],不是addr @szB[]
2012-11-23 10:56
0
游客
登录 | 注册 方可回帖
返回
//