【发布时间】:2012-04-16 23:52:31
【问题描述】:
我正在翻译伪代码
for(i=1; i<MAX; i++)
if(split[j] = 1)
for(j=i*3; j<MAX; j=j+i)
split[j]=0
进入 ARM 程序集。老实说,我不知道该怎么做,展示我的尝试会浪费时间。
【问题讨论】:
-
这取决于
split的类型。它是一个字节数组吗?整数?多头?字符?由于您使用的是ldr,因此我认为这是一个词。可以肯定的是,我会使用调试器检查内存。此外,您不需要加载到 R2 中然后立即将其设置为 0:只需将其设置为 0 并存储即可。 -
在数据部分中,拆分被声明为“.skip”,后跟一个计算结果为 400 的表达式。如果这不是你要问的,我不清楚?
-
他在问你在数组中存储了什么。在您的示例中,它可能是:字节、字、双字、双精度、指针等。在编写汇编时知道这一点很重要。
-
嗯,你的循环对我来说也没有意义。当 i>3 时,“for(j=i*3 to 10)”应该做什么?
-
@Sparafusile 好吧,我猜它是 int 但我不知道在程序集级别应用这种类型