毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

VC嵌入汇编怎么识别指针

更新时间:2012-8-20:  来源:毕业论文

那两个输出错误结果的语法是从书上看来的,书上运行的是MASM8.0,因为我找不到编译器同时也不会用,所以就只在VC2008里试验了

C/C++ codevoid main()
{
    int *x = new int[5];
    x[0] = 1;
    x[1] = 12;
    x[2] = 123;
    x[3] = 1234;
    x[4] = 12345;
    int y = 789;
    int a[] = {1,12,123,1234,12345};
    int result1, result2, result3;
    _asm
    {
        mov eax, y        //输出结果正确
        mov result1, eax

        mov eax, [x+2]    //输出结果错误
        mov result2, eax

        mov eax, [a+2]    //输出结果错误
        mov result3, eax
    }
    cout<<result1<<endl;
    cout<<result2<<endl;
    cout<<result3<<endl;
}
嵌入汇编指针需要加前缀

#include <iostream.h>
void main()
{
    int *x = new int[5];
    x[0] = 1;
    x[1] = 12;
    x[2] = 123;
    x[3] = 1234;
    x[4] = 12345;
    int y = 789;
    int a[5] = {1,12,123,1234,12345};
    int result1=0;
    int result2=0;
    int result3=0;

    _asm
    {
        mov eax , y        //输出结果正确
        mov result1 , eax
    /*
        xor eax , eax
        mov eax , dword ptr [a+16] //这里对于a数组
        mov result2, eax
    */   
        xor eax , eax
        mov eax , [ x ]
        mov edx , [ eax + 2 * 4 ]
        mov result2 , edx

    }

    cout<<result1<<endl;
    cout<<result2<<endl;
    cout<<result3<<endl;
}

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。