作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在学习 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
关于c - 如何将 C 中带有数组的 while 循环转换为 ARM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43723980/
我是一名优秀的程序员,十分优秀!