| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3402 人关注过本帖
标题:VC6.0 和 VS2017
只看楼主 加入收藏
rohalloway
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:97
专家分:405
注 册:2018-9-28
结帖率:75%
收藏
 问题点数:0 回复次数:2 
VC6.0 和 VS2017
程序代码:
    int addr;
    char *p = NULL;
    char b[5]={0};
    int k;

    _asm
    {
        mov eax, 0xEEF5EC
        mov eax, [eax]
        add eax, 0x80
        fld [eax]
        mov ecx, 0xDA0ED8
        fdiv [ecx]
        mov eax, 0xB42D10
        call eax
        mov ebx, eax
        mov edi, 0xa8
        lea ecx, [edi + edi*2 - 0x195]
        shl ecx, 6
        sub ecx, ebx
        mov eax, ecx
        mov addr, eax
        xor edi, edi
    }

    while (TRUE)
    {
        _asm
        {
            xor edx, edx
            mov eax, addr
            mov ebx, eax
            mov ecx, 0xa
            div ecx
            mov addr, eax
            mul ecx
            sub eax, ebx
            neg eax
            mov ecx, eax
            add ecx, 0x30
            lea esi, b
            mov[esi + edi], ecx
            inc edi
            mov edx, 0
            mov ebx, edx
            mov eax, addr
            or eax, ebx
            mov k, eax
        }

        if (k == 0)
            break;
    }

    p = &b[0];
    _strrev(p);
    CString s;
    //s.Format(L"%s", p);
    AfxMessageBox(p);


代码如上

该代码在VC6.0编译可以正确执行,VS2017编译的版本则会导致程序崩溃。

请问可能的原因是什么? 谢谢!

注:
VS2017下需取消//s.Format(L"%s", p);的注释,
另外,确认汇编代码正确。
搜索更多相关主题的帖子: addr 代码 mov VS2017 VC6.0 
2019-10-12 21:13
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
收藏
得分:0 
我不是学汇编的,看不懂代码
但是我知道VS的编译比VC的更严格
所以新手都不建议使用VS
2020-02-23 14:08
prettyboy250
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-4-3
收藏
得分:0 
但是我知道VS的编译比VC的更严格
2020-04-03 18:29
快速回复:VC6.0 和 VS2017
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.125573 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved