首页
社区
课程
招聘
[求助]C++内存变量的值 赋值给 寄存器?
发表于: 2010-10-18 10:09 6058

[求助]C++内存变量的值 赋值给 寄存器?

2010-10-18 10:09
6058
如内存变量A中保存一个地址0x00401000,想把它赋值给某一个寄存器 如用内联汇编
mov eax, A
然后把代码指令写入文件,这个好像不行啊,A是内存地址吧。拷贝出来的字节,应该没有0x00401000这个地址。有什么好方法吗?

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 205
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
将编译器的所有优化选项全关闭,然后定义register关键字的变量 register int var = xx;

试试看,这个和编译器的功能实现有很大关联
2010-10-18 10:59
0
雪    币: 245
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
lea eax,[A]
2010-10-18 11:02
0
雪    币: 37
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好像不行啊。。。
2010-10-19 09:23
0
雪    币: 66
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5

1、DOS下可以……
2、写VXD也可以。
2010-10-19 09:26
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mov eax,[A];
2010-10-19 10:05
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
同意楼上的
mov eax , [A]
2010-10-19 10:29
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
嵌入汇编代码 然后lea eax,[a]
2010-10-19 11:03
0
雪    币: 37
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我是想把A这个地址的值给寄存器,然后再用jmp,eax  
如long A = 0x00401000
mov eax [A]
jmp eax
然后把这个指令拿出来,可以直接用在别的程序上。
2010-10-19 13:07
0
雪    币: 37
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我是想把A这个地址的值给寄存器,然后再用jmp,eax  
如long A = 0x00401000
mov eax [A]
jmp eax
然后把这个指令拿出来,可以直接用在别的程序上。
2010-10-19 13:20
0
雪    币: 245
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不是很明白你的意思,我大概猜一猜吧
在C++中调用
long A = 0x00401000 ;
__asm   mov eax [A];
__asm   jmp eax;

或者
long A = 0x00401000 ;
__asm  
        {
          mov eax [A]
          jmp eax
        }
2010-10-19 14:13
0
雪    币: 37
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
就是想把指令拷贝出来,但是内存的值是指针,数据没法考出来融合到指令里。
2010-10-26 13:45
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
lea ebx,A;
mov eax,[ebx];
jump eax;
2010-11-2 16:38
0
雪    币: 6
活跃值: (267)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
lea ebx,A;
mov eax,[ebx];
jump eax;
2010-11-2 16:43
0
游客
登录 | 注册 方可回帖
返回
//