SaunterCloud
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2014-10-15
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望50点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1189回复:0

关于《天书夜读》第一节结尾部分

楼主#
更多 发布于:2008-12-09 18:36
第三步,自然是表达式的合并与控制流程的结合了,前面D系列的表达式,把中间过程除去,已经很容易得到表达式如下,其中eax开始为0,ecx开始为p3.
ecx [0] = p2[2]*p1[eax*2+1]+p2[0]*p1[eax*2];
ecx [1] = p2[3]*p1[eax*2+1]+p2[1]*p1[eax*2];
此外jl明显导致了一个循环,每次循环的更改是:
eax++;
ecx+=8;
eax是循环变量。ecx显然用于取数组位置,且二者保持固定的同步增加,可以用一个循环变量替代之,所以翻译结果如下:
for(i=0;i<2;i++)
{
p3[i ] = p2[2]*p1[2*i+1]+p2[0]*p1[2*i];
p3[i+1] = p2[3]*p1[2*i+1]+p2[1]*p1[i*2];
}


哪位大佬帮忙解释一下?我个人觉得应该是
for(i=0;i<2;i++)
{
p3[2*i] = p2[2]*p1[2*i+1]+p2[0]*p1[2*i];
p3[2*i+1] = p2[3]*p1[2*i+1]+p2[1]*p1[i*2];
}
游客

返回顶部