【发布时间】:2015-07-07 05:08:54
【问题描述】:
我想知道是否有一种快速的方法可以将此代码从 IA32 转换为程序集!
void function1(char trs[], int let[26]) {
int i;
int ind;
int x = trs[i];
for(i=0; trs[i]!='\0'; i++) {
if (x>='a' && x<='z')
ind = x - 'a';
let[ind]++;
if (x>='A' && x<='Z')
ind=x - 'A';
let[ind]++;
}
}
【问题讨论】:
-
使用 C 编译器!他们就是这样做的!
-
这当然是可能的,但我怀疑它会很快,除非你非常了解 IA32 组装。此外,我怀疑很多人能够比编译器更好地手动优化它,如果这是你想要的。如果是为了学业,那么您应该自己做,如果遇到问题,请回到这里尝试。
-
另请注意,您缺少一些花括号。这不是缩进很重要的python;)
-
该代码没有意义。您在循环之外将
x分配给trs[i],甚至在i被分配一个值之前。x在循环中永远不会被修改,因此无论您在该循环中做什么,每次迭代都会对相同的数组元素执行任何操作。不知道您认为您的代码会做什么,但几乎可以肯定您编写的内容不会达到您的预期。