【发布时间】:2012-08-06 06:47:28
【问题描述】:
我需要在 iphone arm 组件中编写简单的例程(在 xcode 4 下) (正常 32 位不是拇指)并且有问题 (独立的 asm 例程不与 内联我遇到 args 和一般错误的问题)
我需要组装一个类似的函数
void clear_alpha(unsigned char*bits, int width, int height)
{ for(int j=0; j<height; j++)
for(int i=0; i<width; i++)
{
bits[j][i][4] = 0;
}
}
或者,有人可以帮忙吗,tnx
【问题讨论】:
-
你应该说明你为什么必须在汇编中重写它的原因。
-
@nikolai ruhe - 1) 我想学习 iphone asm 2) 曾经做过一些测试,发现 iphone 上的 memcpy() 比复制速度快 15 倍 - 这是因为 arm 有命令一次读取和存储 8 个整数(等等) - asm 会快得多,上面的函数很慢
-
在 c 中获得了更精细的位处理功能,执行需要 80 毫秒,并且我的帧速率低于 10fps(所以我希望稍后在 asm 中重新编写它,并可能实现快 3 倍左右的速度) - 但是这样一个简单的 asm 仍然有问题(我是 iphone xcode 和 arm asm 的新手)
-
memcpy 不能帮你解决这个问题——它是一个字节复制算法——字节不是连续的——所以你不能利用它。
-
@lou franco - 是的,也许,但如果我知道 iphone asm,我也可以选择其他程序 - 所以在我看来,白金值得学习