请帮我把下面的C语言翻译成32位的DOS汇编,要求是能运行。
- C/C++ code
int gacCode[] = {0x0c, 0x0A, 0x13, 0x9, 0x0c, 0x0b, 0x0a, 0x08}; 4 5 int __cdecl KeyGen(char* lpName, int aiLen) 6 { 7 int liTemp = 0; // means esi 8 int i = 3; //just because using VC6,know 3 from ecx == 3 9 int j = 0;10 for(; i11 {12 if(j > 7)13 {14 j = 0;15 }16 liTemp += lpName[i] * gacCode[j];17 }18 19 return liTemp;20 }21 22 23 int main()24 {25 char lszName[] = "abcdefg";26 int liKey = KeyGen(lszName, strlen(lszName));27 28 printf("%i/n",liKey);29 return 0;30 }
------解决方案--------------------------------------------------------
用gcc的话,这样:
gcc -masm=intel -S urcode.c
这样的话,会得到一份intel风格的汇编代码。