作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的汇编函数中,有 6 个参数。当我尝试访问第四个和第五个参数时,它们是错误的,这是我在 arm cortex-8a 上的代码
push {r4-r8,lr}
ldr r6, [sp]
ldr r7, [sp, #4]
最佳答案
为什么不试试呢?
unsigned int fun ( unsigned int, unsigned int, unsigned int, unsigned int, unsigned int );
unsigned int myfun ( void )
{
return(fun(1,2,3,4,5));
}
> arm-none-eabi-gcc -O2 -c fun.c -o fun.o
> arm-none-eabi-objdump -D fun.o
00000000 <myfun>:
0: e52de004 push {lr} ; (str lr, [sp, #-4]!)
4: e3a03005 mov r3, #5
8: e24dd00c sub sp, sp, #12
c: e58d3000 str r3, [sp]
10: e3a01002 mov r1, #2
14: e3a02003 mov r2, #3
18: e3a03004 mov r3, #4
1c: e3a00001 mov r0, #1
20: ebfffffe bl 0 <fun>
24: e28dd00c add sp, sp, #12
28: e49de004 pop {lr} ; (ldr lr, [sp], #4)
2c: e12fff1e bx lr
unsigned int fun ( unsigned int a, unsigned int b, unsigned int c, unsigned int d, unsigned int e )
{
return(a+b+c+d-e);
}
arm-none-eabi-gcc -O2 -c fun.c -o fun.o
arm-none-eabi-objdump -D fun.o
00000000 <fun>:
0: e0811000 add r1, r1, r0
4: e0812002 add r2, r1, r2
8: e59d0000 ldr r0, [sp]
c: e0823003 add r3, r2, r3
10: e0600003 rsb r0, r0, r3
14: e12fff1e bx lr
arm-none-eabi-gcc --version
arm-none-eabi-gcc (GCC) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
关于assembly - 如何在 ARM 汇编函数中访问 4 个以上的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15071506/
我是一名优秀的程序员,十分优秀!