这里高手多,请教个简单的问题
时间:2011-04-02
来源:互联网
unsigh int g_iGud[100] = {1,2,3,...100};
unsigh int iTmp;
// 请问以下指令的差别、运行结果及导致原因
第一种情况
__asm
{
pushad
mov eax, dword ptr[g_iGud]
mov iTmp, eax
mov ebx, dword ptr[iTmp + 0x10]
popad
}
__
第二种情况
asm
{
pushad
mov eax, dword ptr[g_iGud]
mov ebx, dword ptr[eax + 0x10]
popad
}
第三种情况
asm
{
pushad
mov ebx, dword ptr[g_iGud+ 0x10]
popad
}
最近在反汇编一个程序,有几个算法,想拿出来用,但代码实在是太长了,翻译成c估计要20多天,就懒省事,把汇编直接嵌入到VC中用,没想到遇到了类似上边的问题,感觉很迷惑。由于代码中有些地址被编译器硬编码了,所以要处理以下,没啥经验,感觉挺麻烦的,期待高手
作者: C20062222 发布时间: 2011-04-02
第一种不合法
第二种把g_iGud[0]作为索引,ebx等于内存地址17指向的,显然是无效地址
第三种ebx等于g_iGud[16]
第二种把g_iGud[0]作为索引,ebx等于内存地址17指向的,显然是无效地址
第三种ebx等于g_iGud[16]
作者: Lactoferrin 发布时间: 2011-04-02
来学习了
作者: lizhenghaw006 发布时间: 2011-04-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28