一小段代码,从intel转换到at&t出现的有关问题
一小段代码,从intel转换到at&t出现的问题
这点代码我用VC6编译是正常的。现在我要将它移植到GCC下,用的是CODEBLOCKS,转换如下:
问题是这段代码压根就不起作用,问题似乎出在“__asm__”上面。
------解决方案--------------------
asm volatile("rep movsb"::"D"(pStr),"S"(0x401000),"c"(0x1000));
- C/C++ code
unsigned char str[0x1000] int pStr=(int)str; pDllFile = fopen(FILENAME, "wb"); if ( pDllFile ) { _asm { pushad mov ecx,0x1000 mov edi,pStr mov esi,0x401000 rep movsb popad }
这点代码我用VC6编译是正常的。现在我要将它移植到GCC下,用的是CODEBLOCKS,转换如下:
- C/C++ code
__asm__("pushal movl $0x1000,%ecx movl pStr,%edi movl $0x401000,%esi rep movsb popal");
问题是这段代码压根就不起作用,问题似乎出在“__asm__”上面。
------解决方案--------------------
asm volatile("rep movsb"::"D"(pStr),"S"(0x401000),"c"(0x1000));