请教将C语言转为汇编代码

chenluhua1999 2011-10-09 10:04:55
下面是一段图像处理的C代码,为提高效率,需要转换为汇编,请高手指教。


BYTE * pBits = ...;
RGBQUAD * pSource = (RGBQUAD*) pBits;
float fx=0.5f;
BYTE byNewPixel = 0;
int x1 = m_nWidth/2;
if(x1 < 0) x1 = 0;
for(int x = x1; x < m_nWidth; x++)
{
float x2 = float((float)(x-x1)/600.0);
if(x2 < 0.5)
{
fx = 0.5 * pow((2*x2), 2);
}
else
{
fx = 1 - 0.5 * pow(2 * (1-x2), 2);
}

pSource = (RGBQUAD*)(pBits + (x)*4);
for(int y = 0; y < m_nHeight; y++)
{
pSource->rgbRed = pSource->rgbRed * fx;
pSource->rgbGreen = pSource->rgbGreen * fx;
pSource->rgbBlue = pSource->rgbBlue * fx;
pSource += m_nWidth;
}
}


...全文
91 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenluhua1999 2011-10-10
  • 打赏
  • 举报
回复
谢谢!按照大家的建议,我选写好C的代码,然后调试的时候查看汇编代码,一边学习一边优化。另外,我尽量把循环里面的运算移到循环外,把float的fx(0-1之间)改成int型的(1-100),乘之后再除以100.
cokeliu 2011-10-10
  • 打赏
  • 举报
回复
C编译器一般可以直接输出汇编的. 汇编再转成机器码在CPU里面运行
cxdzxc 2011-10-10
  • 打赏
  • 举报
回复
c编译器一般都可以直接输出汇编,google c输出汇编
ermuzi 2011-10-10
  • 打赏
  • 举报
回复
路过,看看,学习学习

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧