gpt4 book ai didi

c - 如何将 C 中带有数组的 while 循环转换为 ARM

转载 作者:行者123 更新时间:2023-11-30 21:20:05 25 4
gpt4 key购买 nike

我目前正在学习 ARM,我必须将特定的 C 代码片段转换为 ARM 代码才能在机器上进行测试。但是,我不知道如何在 ARM 中具体声明数组,也没有找到非常相关的资源来解释它..

i = 0
while (i < 0xB) {
x[i] = i*2;
}

提前非常感谢

最佳答案

既然这个问题没有答案,我就用GodBolt并在那里输入OP的代码。

我冒昧地将给定代码格式化为:

void assign(int num) {
int x[10];
int i = 0;
while(i < 0xB) {
x[i] = i*2;
}
}

用于翻译此内容的编译器是ARM gcc 5.4.1

翻译后的代码:

assign(int):
str fp, [sp, #-4]!
add fp, sp, #0
sub sp, sp, #60
str r0, [fp, #-56]
mov r3, #0
str r3, [fp, #-8]
.L3:
ldr r3, [fp, #-8]
cmp r3, #10
bgt .L4
ldr r3, [fp, #-8]
mov r2, r3, asl #1
ldr r3, [fp, #-8]
mov r3, r3, asl #2
sub r1, fp, #4
add r3, r1, r3
str r2, [r3, #-44]
b .L3
.L4:
mov r0, r0 @ nop
sub sp, fp, #0
ldr fp, [sp], #4
bx lr

来源:https://godbolt.org/g/5Tv3gk

关于c - 如何将 C 中带有数组的 while 循环转换为 ARM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43723980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com