首页
社区
课程
招聘
[求助]寄存器
发表于: 2009-1-6 20:20 11045

[求助]寄存器

2009-1-6 20:20
11045
如果一个注册码就是EAX的地址的话
如何把这个注册码当做字符串放到EBX中

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (38)
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
注册码的地址放在eax

要把注册码放进ebx

那不就mov ebx,[eax]行了
2009-1-6 20:28
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
3
eax是地址,地址就是注册码,
2009-1-6 20:31
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没理解

等高人吧
2009-1-6 20:59
0
雪    币: 388
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
举个简单的例子
mov eax, 10000000
mov ebx, 10000010
push [eax]
pop [ebx]
这样eax的地址10000000就转化成字符到了ebx地址中了
2009-1-6 21:49
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=Cyane;561137]举个简单的例子
mov eax, 10000000
mov ebx, 10000010
push [eax]
pop [ebx]
这样eax的地址10000000就转化成字符到了ebx地址中了[/QUOTE]

楼主不知道eax的地址,你这是把eax寄存器里的数据传送给了ebx把,而不是地址的传送把!!!!
2009-1-6 22:26
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
7
我老大的思维是异于常人的.
2009-1-6 22:30
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
8
EAX应该是一个指针吧
2009-1-6 22:30
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
9
eax是寄存器,没有所谓的地址....内存才有地址...
如果你的意思是寄存器的值的话
直接mov ebx,eax就可以了...如果你是想问如何把16进制转为字符串的话,直接调用sprintf函数可以实现...

吼吼....还是其他什么高深的涵义...
2009-1-6 22:30
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
10
我发现我很傻很天真...... 原来是个水贴...
2009-1-6 22:32
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
11
没明白楼上大牛的意思,我说错了?
2009-1-6 22:34
0
雪    币: 155
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
还真不知道EAX有地址。。。。。。。。。。
2009-1-6 23:17
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
13
抓狂,比如EAX的地址是00401000,那00401000就是注册码
2009-1-7 12:07
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
14
翻译一下, 我老大的意思是说
注册码存放在401000h处启.  EAX=401000

所以在LZ的第一句话 "如果一个注册码就是EAX的地址的话"
应翻成 如果EAX指向一注册码
2009-1-7 13:18
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
你老大还拿了两张精华

那不就是我说的mov ebx,[eax]吗
2009-1-7 14:28
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
16
我一早就在想这个帖子里面回答的人这样多,且都是大牛级别的人物,一般我只是膜拜的份....仔细看看原来大家在理解上只是有点偏差.

看来我们大家有时间应该聚聚开开小会,讨论一下如何统一技术辞令这个严肃的问题。呵呵........我又水了...
2009-1-7 15:12
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
17
服了你们了,倒!
如果eax=00999000
那么00999000就是注册码,而不是00999000指向的地址
2009-1-7 15:20
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
唉,汇编沒学好啊。我理解楼主的意思,就是在确认注册码的时候,eax它里面有值,但是楼主要明白eax是寄存器,它没有地址的概念的,它里面的值不管什么都是一个32位的二进制数,所有 你的意思是要把这个二进制值当作一个字符串来做注册码吧。这很好做到啊,只要通过一个sprintf()函数把它变换下类型就可以了吧。
2009-1-7 15:33
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
19
终于有个人明白我的意思了 不容易啊
2009-1-7 15:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
早猜到楼主的意图了,可是新注册的ID不能发言。

给个code:
//VC2008 新建Win32 Console Project
#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
	//C语言方式,使用sprintf转换
	char buffer[9];
	sprintf(buffer,"%08X",0x00401000);
	//此时buffer指针指向一个“00401000”的字符串

	//汇编方式
	__asm
	{
		mov	 eax,401000h //eax 此时=0x00401000

		push	 ecx			//保存ecx
		sub	 esp, 09h		//扩展堆栈,保存转换的HEX字符串
		
		xor	 ecx,ecx		//计数开始,每次取二进制4位转换为1个HEX字符
TOHEX:							
		rol	 eax,04h		//循环左移4位
		mov	 bl,al			//保存位移结果,因为要对al操作,会修改原来的数据
		and   al,0fh			//高4位清零
		add   al,90h			//转换运算:4位二进制数值转换1位16进制字符
		daa
		adc   al,40h
		daa
		mov	byte ptr [esp+ecx],al	//转换结果字符保存到栈中的扩展空间
		mov	al,bl				//恢复位移结果

		inc	ecx
		cmp  ecx,08h
		jne	TOHEX			//继续循环

		mov	byte ptr [esp+08h],00h	//字符串结束标志
		mov	ebx,esp			//ebx指向结果字符串的起始地址
		//==此时ebx指向一个字符串"00401000"的首地址==

		add  esp, 09h		//恢复栈
		pop  ecx			//恢复ECX

	}
	return 0;
}
2009-1-7 15:59
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
21
.

我好伤心啊,我一开始就说了这个问题了....呼呼,不看我帖子...sprintf 函数可以实现..

如果直接汇编转的话
MOV EAX,98563214h ;这个是你要转换的数字
MOV ECX,8h
PUSH EBP
MOV EBP,ESP
PUSH 0h
PUSH 0h
PUSH 0h
PUSH 0h
@:
XOR EBX,EBX
MOV BL,AL
AND BL,0Fh
ADD BL,30h
MOV BYTE PTR [ESP+ECX],BL
ROR EAX,4
LOOP @
ADD ESP,1
MOV EBX,ESP
2009-1-7 15:59
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
22
我倒,这么多代码,有没有1个函数快速搞定滴
2009-1-7 16:10
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
23
sorry...
我翻译错了
2009-1-7 17:26
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
24
呵呵,我的翻译官好厉害啊
2009-1-7 18:10
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
25
我才倒呢....

你就是打算不看帖子,自顾自的问。打屁股......

EEEOFFF回答你了阿... sprintf, 我也说了两遍了...

尤其要怪 sessiondiy,你老大视力不好。你怎么这么不负责任.....吼吼
2009-1-7 18:22
0
游客
登录 | 注册 方可回帖
返回
//