首页
论坛
专栏
课程

[求助]关于vc++内联汇编的问题

2012-8-22 18:06 3324

[求助]关于vc++内联汇编的问题

2012-8-22 18:06
3324
我vc++内联汇编如下:
_asm
{
a:
mov eax,1
}

我想直接这样
_asm
{
004544d4:
jmp a
}

编译器说这样子不行,就是想问一下,如何在内联汇编里固定内存地址跳到我在vc内联汇编里的地址?目前我想不到什么方法,因为a都是动态地址,随机分配,所以直接写字节也不行,在或者我还想直接这样改
_asm
{
004544d4:
mov eax,1

}

小菜鸟初学vc,对windows的认识不够高,我找了好多资料都没找到方法,恳求各位看雪高手能够帮一帮我这个可怜巴巴,两眼泪汪汪的小菜鸟

第2个问题:vs2008 x64编译器不支持内联汇编,有什么办法可以解决?

[招聘]欢迎市场人员加入看雪学院团队!

最新回复 (5)
jiangjing 1 2012-8-22 18:18
2
0
在内联汇编里面如果使用jmp失败,那就在普通的代码的用goto啊。
第二就不知道了。
高级小白 2012-8-22 18:24
3
0
楼上能不能给出具体的代码或例子?就是要让固定内存 直接跳到我c++的内联汇编里,谢谢
zaas 5 2012-8-22 20:32
4
0
__asm
                {
                        call nothing
        nothing:
                        pop eax
                        add eax,7
                        push eax
                        mov eax,0x004544d4
                        jmp eax
                }

0x004544d4代码:
                mov eax,1
                pop ebx
                jmp ebx
高级小白 2012-8-22 21:12
5
0
关键问题就是
0x004544d4代码:
    mov eax,1
    pop ebx
    jmp ebx

这里如何用vc++写?
还有我是要从固定地址跳到我写的汇编代码,不是从我写的汇编带码跳到固定地址
darkbot 2012-8-25 14:02
6
0
直接
__asm{
    mov eax,1
    pop ebx
    jmp ebx}
然后再用memcpy把ASM的写入到 0x004544d4
游客
登录 | 注册 方可回帖
返回