朕要破外挂 发表于 2015-10-7 10:27:47

c与汇编简单的混合编程

#include"iostream.h"
int main()
{

int a=11;


_asm
{


movSS:,ax

}
cout<<a<<endl;


return 0;
}
我想让c++输出33
除了mov a,33 以外该怎么写

ryxcaixia 发表于 2015-10-7 10:27:48

本帖最后由 ryxcaixia 于 2015-10-8 08:39 编辑

输出的只是某个变量的值
而变量在内存中不过是个助记符 记录他在当前进程中的虚拟内存地址
变量上的地址的值还由类型决定 从当前地址开始 向前的sizoef(var)个字节的内容
举个例子 int型就输出当前地址开始+4字节的内容
byte型就输出从当前地址开始1个字节的内容 以此类类推

#include"iostream.h"
int main()
{

int a=11;


_asm
{


//movSS:,ax
mov dword ptr , 33
}
cout<<a<<endl;


return 0;
}

朕要破外挂 发表于 2015-10-9 06:32:35

ryxcaixia 发表于 2015-10-7 10:27
输出的只是某个变量的值
而变量在内存中不过是个助记符 记录他在当前进程中的虚拟内存地址
变量上的地址 ...

这是不是汇编的一个bug
http://bbs.fishc.com/thread-65359-1-1.html
(出处: 鱼C论坛)
再请教一个问题好吗 谢谢

lsw975681 发表于 2015-10-14 10:35:27

好像语法没对啊,int main()上方还有一个语句

鱼C工作室.YCGZS 发表于 2015-12-4 11:13:24

好方法
页: [1]
查看完整版本: c与汇编简单的混合编程