首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

一小段代码,从intel转换到at&t出现的有关问题

2012-06-10 
一小段代码,从intel转换到at&t出现的问题C/C++ codeunsigned char str[0x1000]int pStr(int)strpDllFile

一小段代码,从intel转换到at&t出现的问题

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__("pushalmovl $0x1000,%ecxmovl pStr,%edimovl $0x401000,%esirep movsbpopal");

问题是这段代码压根就不起作用,问题似乎出在“__asm__”上面。

[解决办法]
asm volatile("rep movsb"::"D"(pStr),"S"(0x401000),"c"(0x1000));

热点排行